<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>reconstruct_surface_stereo [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dreconstruction.html">3D Reconstruction</a> / <a href="toc_3dreconstruction_multiviewstereo.html">Multi-View Stereo</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">reconstruct_surface_stereo</span><span data-if="c" style="display:none;">T_reconstruct_surface_stereo</span><span data-if="cpp" style="display:none;">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none;">ReconstructSurfaceStereo</span><span data-if="python" style="display:none;">reconstruct_surface_stereo</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">reconstruct_surface_stereo</span><span data-if="c" style="display:none;">T_reconstruct_surface_stereo</span><span data-if="cpp" style="display:none;">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none;">ReconstructSurfaceStereo</span><span data-if="python" style="display:none;">reconstruct_surface_stereo</span></code> — Reconstruct surface from calibrated multi-view stereo images.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>reconstruct_surface_stereo</b>(<a href="#Images"><i>Images</i></a> :  : <a href="#StereoModelID"><i>StereoModelID</i></a> : <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_reconstruct_surface_stereo</b>(const Hobject <a href="#Images"><i>Images</i></a>, const Htuple <a href="#StereoModelID"><i>StereoModelID</i></a>, Htuple* <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>ReconstructSurfaceStereo</b>(const HObject&amp; <a href="#Images"><i>Images</i></a>, const HTuple&amp; <a href="#StereoModelID"><i>StereoModelID</i></a>, HTuple* <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>)</code></p>
<p>
<code>void <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>ReconstructSurfaceStereo</b>(const HImage&amp; <a href="#Images"><i>Images</i></a>, const HStereoModel&amp; <a href="#StereoModelID"><i>StereoModelID</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HStereoModel.html">HStereoModel</a>::<b>ReconstructSurfaceStereo</b>(const HImage&amp; <a href="#Images"><i>Images</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>ReconstructSurfaceStereo</b>(<a href="HObject.html">HObject</a> <a href="#Images"><i>images</i></a>, <a href="HTuple.html">HTuple</a> <a href="#StereoModelID"><i>stereoModelID</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>)</code></p>
<p>
<code>void <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>ReconstructSurfaceStereo</b>(<a href="HImage.html">HImage</a> <a href="#Images"><i>images</i></a>, <a href="HStereoModel.html">HStereoModel</a> <a href="#StereoModelID"><i>stereoModelID</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HStereoModel.html">HStereoModel</a>.<b>ReconstructSurfaceStereo</b>(<a href="HImage.html">HImage</a> <a href="#Images"><i>images</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>reconstruct_surface_stereo</b>(<a href="#Images"><i>images</i></a>: HObject, <a href="#StereoModelID"><i>stereo_model_id</i></a>: HHandle) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> reconstructs a surface
from multiple <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a>, acquired with a calibrated multi-view
setup associated with a stereo model <a href="#StereoModelID"><i><code><span data-if="hdevelop" style="display:inline">StereoModelID</span><span data-if="c" style="display:none">StereoModelID</span><span data-if="cpp" style="display:none">StereoModelID</span><span data-if="com" style="display:none">StereoModelID</span><span data-if="dotnet" style="display:none">stereoModelID</span><span data-if="python" style="display:none">stereo_model_id</span></code></i></a>.
The reconstructed surface is stored in the handle <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>.
</p>
<h3>Preparation and requirements</h3>
<p>A summary of the preparation of a stereo model for surface reconstruction:
</p>
<ol>
<li>
<p> Obtain calibrated camera setup model (use <a href="calibrate_cameras.html"><code><span data-if="hdevelop" style="display:inline">calibrate_cameras</span><span data-if="c" style="display:none">calibrate_cameras</span><span data-if="cpp" style="display:none">CalibrateCameras</span><span data-if="com" style="display:none">CalibrateCameras</span><span data-if="dotnet" style="display:none">CalibrateCameras</span><span data-if="python" style="display:none">calibrate_cameras</span></code></a>
or <a href="create_camera_setup_model.html"><code><span data-if="hdevelop" style="display:inline">create_camera_setup_model</span><span data-if="c" style="display:none">create_camera_setup_model</span><span data-if="cpp" style="display:none">CreateCameraSetupModel</span><span data-if="com" style="display:none">CreateCameraSetupModel</span><span data-if="dotnet" style="display:none">CreateCameraSetupModel</span><span data-if="python" style="display:none">create_camera_setup_model</span></code></a>) and configure it.
</p>
</li>
<li>
<p> Create a stereo model with <a href="create_stereo_model.html"><code><span data-if="hdevelop" style="display:inline">create_stereo_model</span><span data-if="c" style="display:none">create_stereo_model</span><span data-if="cpp" style="display:none">CreateStereoModel</span><span data-if="com" style="display:none">CreateStereoModel</span><span data-if="dotnet" style="display:none">CreateStereoModel</span><span data-if="python" style="display:none">create_stereo_model</span></code></a>
by selecting <code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code>=<i><span data-if="hdevelop" style="display:inline">'surface_pairwise'</span><span data-if="c" style="display:none">"surface_pairwise"</span><span data-if="cpp" style="display:none">"surface_pairwise"</span><span data-if="com" style="display:none">"surface_pairwise"</span><span data-if="dotnet" style="display:none">"surface_pairwise"</span><span data-if="python" style="display:none">"surface_pairwise"</span></i> or
<i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> (see 'Reconstruction algorithm').
</p>
</li>
<li>
<p> Configure the rectification parameters with
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> and afterwards set the image pairs
with <a href="set_stereo_model_image_pairs.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_image_pairs</span><span data-if="c" style="display:none">set_stereo_model_image_pairs</span><span data-if="cpp" style="display:none">SetStereoModelImagePairs</span><span data-if="com" style="display:none">SetStereoModelImagePairs</span><span data-if="dotnet" style="display:none">SetStereoModelImagePairs</span><span data-if="python" style="display:none">set_stereo_model_image_pairs</span></code></a>.
</p>
</li>
<li>
<p> Configure the bounding box for the system with
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>
(<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'bounding_box'</span><span data-if="c" style="display:none">"bounding_box"</span><span data-if="cpp" style="display:none">"bounding_box"</span><span data-if="com" style="display:none">"bounding_box"</span><span data-if="dotnet" style="display:none">"bounding_box"</span><span data-if="python" style="display:none">"bounding_box"</span></i>).
</p>
</li>
<li>
<p> Configure parameters of pairwise reconstruction with
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>.
</p>
</li>
<li>
<p> For models with <code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code>=<i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> configure
parameters of the fusion algorithm with <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>.
</p>
</li>
<li>
<p> Acquire images with the calibrated cameras setup and
collect them in an image array <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a>.
</p>
</li>
<li>
<p> Perform surface reconstruction with
<code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code>.
</p>
</li>
<li>
<p> Query and analyze intermediate results with
<a href="get_stereo_model_object.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object</span><span data-if="c" style="display:none">get_stereo_model_object</span><span data-if="cpp" style="display:none">GetStereoModelObject</span><span data-if="com" style="display:none">GetStereoModelObject</span><span data-if="dotnet" style="display:none">GetStereoModelObject</span><span data-if="python" style="display:none">get_stereo_model_object</span></code></a> and
<a href="get_stereo_model_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object_model_3d</span><span data-if="c" style="display:none">get_stereo_model_object_model_3d</span><span data-if="cpp" style="display:none">GetStereoModelObjectModel3d</span><span data-if="com" style="display:none">GetStereoModelObjectModel3d</span><span data-if="dotnet" style="display:none">GetStereoModelObjectModel3d</span><span data-if="python" style="display:none">get_stereo_model_object_model_3d</span></code></a>.
</p>
</li>
<li>
<p> Readjust the parameters of the stereo model to improve the results
with respect to quality and runtime with <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>.
</p>
</li>
</ol>
<p>A <b>camera setup model</b> is associated with the stereo model
<a href="#StereoModelID"><i><code><span data-if="hdevelop" style="display:inline">StereoModelID</span><span data-if="c" style="display:none">StereoModelID</span><span data-if="cpp" style="display:none">StereoModelID</span><span data-if="com" style="display:none">StereoModelID</span><span data-if="dotnet" style="display:none">stereoModelID</span><span data-if="python" style="display:none">stereo_model_id</span></code></i></a> upon its creation with <a href="create_stereo_model.html"><code><span data-if="hdevelop" style="display:inline">create_stereo_model</span><span data-if="c" style="display:none">create_stereo_model</span><span data-if="cpp" style="display:none">CreateStereoModel</span><span data-if="com" style="display:none">CreateStereoModel</span><span data-if="dotnet" style="display:none">CreateStereoModel</span><span data-if="python" style="display:none">create_stereo_model</span></code></a>.
The camera setup must contain <i>calibrated information</i> about the
cameras, with which the images in the image array <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a> were
acquired: the <code>I</code>-th image from the array corresponds to the camera
with index <code>I-1</code> from the camera setup; the number of images in the
array must be the same as the number of cameras in the camera setup.
The <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a> must represent a static scene or they must be taken
simultaneously, otherwise, the reconstruction of the surface might
be impossible.
</p>
<p>A well-calibrated camera setup is the main requirement for a precise
surface reconstruction. Therefore, special attention should be paid to
obtaining a precise calibration of the cameras in the multi-view stereo
setup used. HALCON provides calibration of a multi-view setup with
该算子 <a href="calibrate_cameras.html"><code><span data-if="hdevelop" style="display:inline">calibrate_cameras</span><span data-if="c" style="display:none">calibrate_cameras</span><span data-if="cpp" style="display:none">CalibrateCameras</span><span data-if="com" style="display:none">CalibrateCameras</span><span data-if="dotnet" style="display:none">CalibrateCameras</span><span data-if="python" style="display:none">calibrate_cameras</span></code></a>. The resulting calibrated camera
setup can be accessed with a successive call to <a href="get_calib_data.html"><code><span data-if="hdevelop" style="display:inline">get_calib_data</span><span data-if="c" style="display:none">get_calib_data</span><span data-if="cpp" style="display:none">GetCalibData</span><span data-if="com" style="display:none">GetCalibData</span><span data-if="dotnet" style="display:none">GetCalibData</span><span data-if="python" style="display:none">get_calib_data</span></code></a>.
Alternatively, for camera setups with known parameters a calibrated
camera setup can be created with <a href="create_camera_setup_model.html"><code><span data-if="hdevelop" style="display:inline">create_camera_setup_model</span><span data-if="c" style="display:none">create_camera_setup_model</span><span data-if="cpp" style="display:none">CreateCameraSetupModel</span><span data-if="com" style="display:none">CreateCameraSetupModel</span><span data-if="dotnet" style="display:none">CreateCameraSetupModel</span><span data-if="python" style="display:none">create_camera_setup_model</span></code></a>.
</p>
<p>The proper selection of <b>image pairs</b> (see
<a href="set_stereo_model_image_pairs.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_image_pairs</span><span data-if="c" style="display:none">set_stereo_model_image_pairs</span><span data-if="cpp" style="display:none">SetStereoModelImagePairs</span><span data-if="com" style="display:none">SetStereoModelImagePairs</span><span data-if="dotnet" style="display:none">SetStereoModelImagePairs</span><span data-if="python" style="display:none">set_stereo_model_image_pairs</span></code></a>) has an important role for the
general quality of the surface reconstruction. On the one hand,
camera pairs with a small base line (small distance between the camera
centers) are better suited for the binocular stereo disparity algorithms.
On the other hand, in order to derive more accurate depth information of
the scene, pairs with a long base line should be preferred. Camera pairs
should provide different points of view, such that if one pair does not
<i>see</i> a certain area of the surface, it is covered by another pair.
Please note that the number of pairs linearly affects the
runtime of the pairwise reconstruction. Therefore, use "as many as needed
and just as few as possible" image pairs in order to handle the trade-off
between completeness of the surface reconstruction and reconstruction
runtime.
</p>
<p>A <b>bounding box</b> is associated with the stereo model
<a href="#StereoModelID"><i><code><span data-if="hdevelop" style="display:inline">StereoModelID</span><span data-if="c" style="display:none">StereoModelID</span><span data-if="cpp" style="display:none">StereoModelID</span><span data-if="com" style="display:none">StereoModelID</span><span data-if="dotnet" style="display:none">stereoModelID</span><span data-if="python" style="display:none">stereo_model_id</span></code></i></a>. For the surface stereo reconstruction,
it is required that the bounding box is valid (see
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> for further details).
The reconstruction algorithm needs the bounding box for three reasons:
</p>
<ul>
<li>
<p> First, if <code><span data-if="hdevelop" style="display:inline">MinDisparity</span><span data-if="c" style="display:none">MinDisparity</span><span data-if="cpp" style="display:none">MinDisparity</span><span data-if="com" style="display:none">MinDisparity</span><span data-if="dotnet" style="display:none">minDisparity</span><span data-if="python" style="display:none">min_disparity</span></code> and <code><span data-if="hdevelop" style="display:inline">MaxDisparity</span><span data-if="c" style="display:none">MaxDisparity</span><span data-if="cpp" style="display:none">MaxDisparity</span><span data-if="com" style="display:none">MaxDisparity</span><span data-if="dotnet" style="display:none">maxDisparity</span><span data-if="python" style="display:none">max_disparity</span></code>
were not set manually using 该算子s <a href="create_stereo_model.html"><code><span data-if="hdevelop" style="display:inline">create_stereo_model</span><span data-if="c" style="display:none">create_stereo_model</span><span data-if="cpp" style="display:none">CreateStereoModel</span><span data-if="com" style="display:none">CreateStereoModel</span><span data-if="dotnet" style="display:none">CreateStereoModel</span><span data-if="python" style="display:none">create_stereo_model</span></code></a>
or <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>, it uses the
projection of the bounding box into both images of each image pair in
order to estimate the values for <code><span data-if="hdevelop" style="display:inline">MinDisparity</span><span data-if="c" style="display:none">MinDisparity</span><span data-if="cpp" style="display:none">MinDisparity</span><span data-if="com" style="display:none">MinDisparity</span><span data-if="dotnet" style="display:none">minDisparity</span><span data-if="python" style="display:none">min_disparity</span></code> and
<code><span data-if="hdevelop" style="display:inline">MaxDisparity</span><span data-if="c" style="display:none">MaxDisparity</span><span data-if="cpp" style="display:none">MaxDisparity</span><span data-if="com" style="display:none">MaxDisparity</span><span data-if="dotnet" style="display:none">maxDisparity</span><span data-if="python" style="display:none">max_disparity</span></code>, which in turn are used in the internal call to
<a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a> and <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a>.
In the case of using <a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> as disparity method,
suitable values for the parameters <code><span data-if="hdevelop" style="display:inline">InitialGuess</span><span data-if="c" style="display:none">InitialGuess</span><span data-if="cpp" style="display:none">InitialGuess</span><span data-if="com" style="display:none">InitialGuess</span><span data-if="dotnet" style="display:none">initialGuess</span><span data-if="python" style="display:none">initial_guess</span></code> and
<i><span data-if="hdevelop" style="display:inline">'initial_level'</span><span data-if="c" style="display:none">"initial_level"</span><span data-if="cpp" style="display:none">"initial_level"</span><span data-if="com" style="display:none">"initial_level"</span><span data-if="dotnet" style="display:none">"initial_level"</span><span data-if="python" style="display:none">"initial_level"</span></i> are derived from the above-mentioned parameters.
However, the automatic estimation for this method is only used if called
with default values for the two parameters. Otherwise, the values as set by
the user with <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> are used.
</p>
</li>
<li>
<p> Secondly, the default parameters for the fusion of pairwise
reconstructions are calculated based on the bounding box. They are reset in
case the bounding box is changed. The bounding box should be tight around
the volume of interest. Else, the runtime will increase unnecessarily and
drastically.
</p>
</li>
<li>
<p> Thirdly, the surface fragments lying outside the bounding box are clipped
and are not returned in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>. A too large bounding box
results in a large difference between <code><span data-if="hdevelop" style="display:inline">MinDisparity</span><span data-if="c" style="display:none">MinDisparity</span><span data-if="cpp" style="display:none">MinDisparity</span><span data-if="com" style="display:none">MinDisparity</span><span data-if="dotnet" style="display:none">minDisparity</span><span data-if="python" style="display:none">min_disparity</span></code> and
<code><span data-if="hdevelop" style="display:inline">MaxDisparity</span><span data-if="c" style="display:none">MaxDisparity</span><span data-if="cpp" style="display:none">MaxDisparity</span><span data-if="com" style="display:none">MaxDisparity</span><span data-if="dotnet" style="display:none">maxDisparity</span><span data-if="python" style="display:none">max_disparity</span></code> and this usually slows down the execution of
<a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a>, <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a> or
<a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> and therefore
<code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code>. A too small bounding box might result in
clipping valid surface areas.
</p>
</li>
</ul>
<p>Note that the method <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> will try to produce a closed
surface. If the object is only observed and reconstructed from one side, the
far end of the bounding box usually determines where the object is cut off.
</p>
<p><b>Setting parameters</b> of pairwise reconstruction before setting
parameters of fusion is essential since the pairwise reconstruction of the
object is input for the fusion algorithm. For a description of parameters,
see <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>.
The choice of <i><span data-if="hdevelop" style="display:inline">'disparity_method'</span><span data-if="c" style="display:none">"disparity_method"</span><span data-if="cpp" style="display:none">"disparity_method"</span><span data-if="com" style="display:none">"disparity_method"</span><span data-if="dotnet" style="display:none">"disparity_method"</span><span data-if="python" style="display:none">"disparity_method"</span></i> has a major influence.
The objects in the scene should expose certain surface properties in
order to make the scene suitable for the dense surface reconstruction.
First, the surface reflectance should exhibit Lambertian properties as
closely as possible (i.e., light falling on the surface is scattered such
that its apparent brightness is the same regardless of the angle of view).
Secondly, the surface should exhibit enough texture, but no repeating
patterns.
</p>
<p><a href="get_stereo_model_object.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object</span><span data-if="c" style="display:none">get_stereo_model_object</span><span data-if="cpp" style="display:none">GetStereoModelObject</span><span data-if="com" style="display:none">GetStereoModelObject</span><span data-if="dotnet" style="display:none">GetStereoModelObject</span><span data-if="python" style="display:none">get_stereo_model_object</span></code></a> can be used to view
<b>intermediate results</b>, in particular rectified, disparity and score
images.
<a href="get_stereo_model_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object_model_3d</span><span data-if="c" style="display:none">get_stereo_model_object_model_3d</span><span data-if="cpp" style="display:none">GetStereoModelObjectModel3d</span><span data-if="com" style="display:none">GetStereoModelObjectModel3d</span><span data-if="dotnet" style="display:none">GetStereoModelObjectModel3d</span><span data-if="python" style="display:none">get_stereo_model_object_model_3d</span></code></a> can be used to view the result of
pairwise reconstruction for models with
<code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code>=<i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i>. See the paragraph
"Troubleshooting for the configuration of a stereo model"
on how to use the obtained results.
</p>
<h3>Reconstruction algorithm</h3>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> performs multiple
binocular stereo reconstructions and subsequently combines the results.
The image pairs of this pairwise reconstruction are specified in
<a href="#StereoModelID"><i><code><span data-if="hdevelop" style="display:inline">StereoModelID</span><span data-if="c" style="display:none">StereoModelID</span><span data-if="cpp" style="display:none">StereoModelID</span><span data-if="com" style="display:none">StereoModelID</span><span data-if="dotnet" style="display:none">stereoModelID</span><span data-if="python" style="display:none">stereo_model_id</span></code></i></a> as pairs of cameras of an associated calibrated
multi-view setup.
</p>
<p>For each image pair, the images are rectified before internally one of the
operators <a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a>, <a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> or
<a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a> is called.
The disparity information is then converted to points in the coordinate
system of the <i>from</i>-camera by an internal call of
<a href="disparity_image_to_xyz.html"><code><span data-if="hdevelop" style="display:inline">disparity_image_to_xyz</span><span data-if="c" style="display:none">disparity_image_to_xyz</span><span data-if="cpp" style="display:none">DisparityImageToXyz</span><span data-if="com" style="display:none">DisparityImageToXyz</span><span data-if="dotnet" style="display:none">DisparityImageToXyz</span><span data-if="python" style="display:none">disparity_image_to_xyz</span></code></a>.
In the next step, the points are transformed into the common coordinate
system that is specified in the camera setup model associated with
<a href="#StereoModelID"><i><code><span data-if="hdevelop" style="display:inline">StereoModelID</span><span data-if="c" style="display:none">StereoModelID</span><span data-if="cpp" style="display:none">StereoModelID</span><span data-if="com" style="display:none">StereoModelID</span><span data-if="dotnet" style="display:none">stereoModelID</span><span data-if="python" style="display:none">stereo_model_id</span></code></i></a> and stored in a common point cloud together with the
points extracted from other image pairs.
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'surface_pairwise'</span><span data-if="c" style="display:none">"surface_pairwise"</span><span data-if="cpp" style="display:none">"surface_pairwise"</span><span data-if="com" style="display:none">"surface_pairwise"</span><span data-if="dotnet" style="display:none">"surface_pairwise"</span><span data-if="python" style="display:none">"surface_pairwise"</span></i></b></dt>
<dd>
<p>

If the stereo model is of type <i><span data-if="hdevelop" style="display:inline">'surface_pairwise'</span><span data-if="c" style="display:none">"surface_pairwise"</span><span data-if="cpp" style="display:none">"surface_pairwise"</span><span data-if="com" style="display:none">"surface_pairwise"</span><span data-if="dotnet" style="display:none">"surface_pairwise"</span><span data-if="python" style="display:none">"surface_pairwise"</span></i>
(compare <a href="create_stereo_model.html"><code><span data-if="hdevelop" style="display:inline">create_stereo_model</span><span data-if="c" style="display:none">create_stereo_model</span><span data-if="cpp" style="display:none">CreateStereoModel</span><span data-if="com" style="display:none">CreateStereoModel</span><span data-if="dotnet" style="display:none">CreateStereoModel</span><span data-if="python" style="display:none">create_stereo_model</span></code></a>), the point cloud obtained as
described above is directly returned in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>.
For each point, the normal vector is calculated by fitting a plane through
the neighboring 3D points. In contrast to
<a href="surface_normals_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">surface_normals_object_model_3d</span><span data-if="c" style="display:none">surface_normals_object_model_3d</span><span data-if="cpp" style="display:none">SurfaceNormalsObjectModel3d</span><span data-if="com" style="display:none">SurfaceNormalsObjectModel3d</span><span data-if="dotnet" style="display:none">SurfaceNormalsObjectModel3d</span><span data-if="python" style="display:none">surface_normals_object_model_3d</span></code></a>, the neighboring points are
not determined in 3D but simply in 2D by using the neighboring points
in the X, Y, and Z images. The normal vector of each 3D point is then
set to the normal vector of the respective plane.
Additionally, the score of the calculated
disparity is attached to every reconstructed 3D point and stored as an
extended attribute.
Furthermore, transformed coordinate images can be sub-sampled.
If only one image pair is processed and no point meshing is enabled,
<code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> stores a <code>'xyz_mapping'</code>
attribute in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>, which reveals the mapping of the
reconstructed 3D points to coordinates of the first image of the pair.
This attribute is required by operators like
<a href="segment_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">segment_object_model_3d</span><span data-if="c" style="display:none">segment_object_model_3d</span><span data-if="cpp" style="display:none">SegmentObjectModel3d</span><span data-if="com" style="display:none">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none">SegmentObjectModel3d</span><span data-if="python" style="display:none">segment_object_model_3d</span></code></a> or <a href="object_model_3d_to_xyz.html"><code><span data-if="hdevelop" style="display:inline">object_model_3d_to_xyz</span><span data-if="c" style="display:none">object_model_3d_to_xyz</span><span data-if="cpp" style="display:none">ObjectModel3dToXyz</span><span data-if="com" style="display:none">ObjectModel3dToXyz</span><span data-if="dotnet" style="display:none">ObjectModel3dToXyz</span><span data-if="python" style="display:none">object_model_3d_to_xyz</span></code></a>
(with <code><span data-if="hdevelop" style="display:inline">Type</span><span data-if="c" style="display:none">Type</span><span data-if="cpp" style="display:none">Type</span><span data-if="com" style="display:none">Type</span><span data-if="dotnet" style="display:none">type</span><span data-if="python" style="display:none">type</span></code>=<i><span data-if="hdevelop" style="display:inline">'from_xyz_map'</span><span data-if="c" style="display:none">"from_xyz_map"</span><span data-if="cpp" style="display:none">"from_xyz_map"</span><span data-if="com" style="display:none">"from_xyz_map"</span><span data-if="dotnet" style="display:none">"from_xyz_map"</span><span data-if="python" style="display:none">"from_xyz_map"</span></i>).
In contrast to the single pair case, if two or more image pairs are
processed, <code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> does not store the
<code>'xyz_mapping'</code> attribute since single reconstructed points
would originate from different image pairs. The presence of the attribute
in the output object model can be verified by calling
<a href="get_object_model_3d_params.html"><code><span data-if="hdevelop" style="display:inline">get_object_model_3d_params</span><span data-if="c" style="display:none">get_object_model_3d_params</span><span data-if="cpp" style="display:none">GetObjectModel3dParams</span><span data-if="com" style="display:none">GetObjectModel3dParams</span><span data-if="dotnet" style="display:none">GetObjectModel3dParams</span><span data-if="python" style="display:none">get_object_model_3d_params</span></code></a> with
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'has_xyz_mapping'</span><span data-if="c" style="display:none">"has_xyz_mapping"</span><span data-if="cpp" style="display:none">"has_xyz_mapping"</span><span data-if="com" style="display:none">"has_xyz_mapping"</span><span data-if="dotnet" style="display:none">"has_xyz_mapping"</span><span data-if="python" style="display:none">"has_xyz_mapping"</span></i>.
</p>
<p>The so-obtained point cloud can be
additionally meshed in a post-processing step. The object model returned
in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> then contains the description of the mesh.
The used meshing algorithm depends on the type of the stereo model.
For a stereo model of type <i><span data-if="hdevelop" style="display:inline">'surface_pairwise'</span><span data-if="c" style="display:none">"surface_pairwise"</span><span data-if="cpp" style="display:none">"surface_pairwise"</span><span data-if="com" style="display:none">"surface_pairwise"</span><span data-if="dotnet" style="display:none">"surface_pairwise"</span><span data-if="python" style="display:none">"surface_pairwise"</span></i>, only a
Poisson solver is supported which can be activated by setting the
parameter <i><span data-if="hdevelop" style="display:inline">'point_meshing'</span><span data-if="c" style="display:none">"point_meshing"</span><span data-if="cpp" style="display:none">"point_meshing"</span><span data-if="com" style="display:none">"point_meshing"</span><span data-if="dotnet" style="display:none">"point_meshing"</span><span data-if="python" style="display:none">"point_meshing"</span></i> to <i><span data-if="hdevelop" style="display:inline">'poisson'</span><span data-if="c" style="display:none">"poisson"</span><span data-if="cpp" style="display:none">"poisson"</span><span data-if="com" style="display:none">"poisson"</span><span data-if="dotnet" style="display:none">"poisson"</span><span data-if="python" style="display:none">"poisson"</span></i>.
It creates a water-tight mesh, therefore surface regions with missing data
are covered by an interpolated mesh.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i></b></dt>
<dd>
<p>

If the stereo model is of type <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i>, the point cloud
obtained as described above is processed further. The goal is to obtain
a preferably smooth surface while keeping form fidelity. To this end,
the bounding box is sampled and each sample point is assigned a distance
to a so-called isosurface (consisting of points with distance 0). The
final distance values (and thus the isosurface) are obtained by
minimizing an error function based on the points resulting from pairwise
reconstruction. This leads to a fusion of the reconstructed point clouds
of all camera pairs (see the second paper in References below).
</p>
<p>The calculation of the isosurface can be influenced by
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> with the parameters <i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'surface_tolerance'</span><span data-if="c" style="display:none">"surface_tolerance"</span><span data-if="cpp" style="display:none">"surface_tolerance"</span><span data-if="com" style="display:none">"surface_tolerance"</span><span data-if="dotnet" style="display:none">"surface_tolerance"</span><span data-if="python" style="display:none">"surface_tolerance"</span></i>, <i><span data-if="hdevelop" style="display:inline">'min_thickness'</span><span data-if="c" style="display:none">"min_thickness"</span><span data-if="cpp" style="display:none">"min_thickness"</span><span data-if="com" style="display:none">"min_thickness"</span><span data-if="dotnet" style="display:none">"min_thickness"</span><span data-if="python" style="display:none">"min_thickness"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'smoothing'</span><span data-if="c" style="display:none">"smoothing"</span><span data-if="cpp" style="display:none">"smoothing"</span><span data-if="com" style="display:none">"smoothing"</span><span data-if="dotnet" style="display:none">"smoothing"</span><span data-if="python" style="display:none">"smoothing"</span></i>.
The distance between sample points in the bounding box (in each
coordinate direction) can be set by the parameter <i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i>.
The parameter <i><span data-if="hdevelop" style="display:inline">'smoothing'</span><span data-if="c" style="display:none">"smoothing"</span><span data-if="cpp" style="display:none">"smoothing"</span><span data-if="com" style="display:none">"smoothing"</span><span data-if="dotnet" style="display:none">"smoothing"</span><span data-if="python" style="display:none">"smoothing"</span></i> regulates the 'jumpiness' of the
distance function by weighting the two terms in the error function:
Fidelity to the initial point clouds obtained by pairwise reconstruction
on the one hand, total variation of the distance function on the other
hand. Note that the actual value of <i><span data-if="hdevelop" style="display:inline">'smoothing'</span><span data-if="c" style="display:none">"smoothing"</span><span data-if="cpp" style="display:none">"smoothing"</span><span data-if="com" style="display:none">"smoothing"</span><span data-if="dotnet" style="display:none">"smoothing"</span><span data-if="python" style="display:none">"smoothing"</span></i> for a given data
set to be visually pleasing has to be found by trial and error.
Too small values lead to integrating many outliers into the surface even
if the object surface then exhibits many jumps.
Too large values lead to loss of fidelity towards the point cloud of
pairwise reconstruction.
Fidelity to the initial surfaces obtained by pairwise reconstruction is
not maintained in the entire bounding box, but only in cones of sight
of cameras to the initial surface.
A sample point in such a cone is considered surely outside of the object
(in front of the surface) or surely inside the object
(behind the surface) with respect to the given camera if its distance
to the initial surface exceeds a given
value which can be set by the parameter <i><span data-if="hdevelop" style="display:inline">'surface_tolerance'</span><span data-if="c" style="display:none">"surface_tolerance"</span><span data-if="cpp" style="display:none">"surface_tolerance"</span><span data-if="com" style="display:none">"surface_tolerance"</span><span data-if="dotnet" style="display:none">"surface_tolerance"</span><span data-if="python" style="display:none">"surface_tolerance"</span></i>.
The length of considered cones behind the
initial surface can roughly be set by the parameter
<i><span data-if="hdevelop" style="display:inline">'min_thickness'</span><span data-if="c" style="display:none">"min_thickness"</span><span data-if="cpp" style="display:none">"min_thickness"</span><span data-if="com" style="display:none">"min_thickness"</span><span data-if="dotnet" style="display:none">"min_thickness"</span><span data-if="python" style="display:none">"min_thickness"</span></i> (see <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>
for more details).
<i><span data-if="hdevelop" style="display:inline">'min_thickness'</span><span data-if="c" style="display:none">"min_thickness"</span><span data-if="cpp" style="display:none">"min_thickness"</span><span data-if="com" style="display:none">"min_thickness"</span><span data-if="dotnet" style="display:none">"min_thickness"</span><span data-if="python" style="display:none">"min_thickness"</span></i> always has to be larger than or equal to
<i><span data-if="hdevelop" style="display:inline">'surface_tolerance'</span><span data-if="c" style="display:none">"surface_tolerance"</span><span data-if="cpp" style="display:none">"surface_tolerance"</span><span data-if="com" style="display:none">"surface_tolerance"</span><span data-if="dotnet" style="display:none">"surface_tolerance"</span><span data-if="python" style="display:none">"surface_tolerance"</span></i>.
</p>
<div style="text-align:center;" class="figure">
<table style="margin-left:auto;margin-right:auto">
<tr>
<td><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="305.14026" height="166.15121" id="svg9581" inkscape:version="0.48.3.1 r9886" sodipodi:docname="reconstruct_surface_stereo-distance_1.svg">
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1984" inkscape:window-height="1198" id="namedview3134" showgrid="false" inkscape:zoom="4.3619285" inkscape:cx="152.57013" inkscape:cy="83.075607" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" inkscape:current-layer="svg9581"></sodipodi:namedview>
  <defs id="defs9583"></defs>
  <metadata id="metadata9586">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"></dc:type>
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <path d="m 271.67361,46.110385 c 1.74952,2.007166 2.10696,6.014501 5.51546,4.709885 1.16695,3.182178 1.53914,7.307146 0.48674,10.487931 -3.6132,-1.01979 -3.27119,1.705277 -3.07926,4.451984 -2.25934,1.148205 -5.59512,-0.02899 -8.18128,0.384932 -5.85374,-0.300649 -11.96295,0.52057 -17.67506,-0.416469 -3.21023,-3.437078 -8.51834,-0.666965 -12.58445,-1.778858 -2.50691,-3.854542 -2.7317,-9.474762 -0.95404,-13.694169 2.26846,-1.415075 5.65453,-0.174997 8.26916,-0.777666 2.94458,1.16751 0.46018,-3.194154 3.0898,-2.720308 8.26116,-0.243085 16.6399,-0.893754 24.83558,-0.916553 0.11801,0.06012 0.19367,0.172511 0.27731,0.26962 z" id="path4295" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.03858,46.218154 c -0.58965,-0.911289 -0.47561,1.149751 0,0 z" id="path4297" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.99359,50.268156 c -0.95041,-4.375514 -3.39095,-4.149199 0.0645,-0.03682 0.20683,-0.126965 0.48388,-0.840465 -0.0645,0.03682 z" id="path4299" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.6042,50.688183 c -0.34374,-2.558875 -0.75888,1.553139 0,0 z" id="path4301" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.92417,51.001124 c -2.11254,-1.430731 -2.89236,1.237281 0.30366,-0.361062 l -0.005,-0.02304 -0.299,0.384071 z" id="path4303" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 277.25726,50.60289 c -0.72156,0.642399 -0.10291,0.418273 0,0 z" id="path4305" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 278.32588,55.830609 c -0.13621,-1.019487 -0.17983,-5.776088 -1.29202,-4.804478 1.03204,1.308354 0.59729,4.190835 1.14274,5.047425 l 0.11515,-0.142783 0.0342,-0.100293 z" id="path4307" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 277.82738,61.111218 c 0.14499,0.582702 0.95866,-3.999989 0.49853,-5.280638 -0.45992,1.238028 -0.77555,5.676112 -0.49849,5.280659 -0.0709,0.105294 -0.4664,0.550206 -4e-5,-2.1e-5 z" id="path4309" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.70118,61.128715 c 2.51337,1.407336 4.3731,-1.03153 -0.31111,0.379097 0.94203,-1.277151 -0.69321,0.894515 0.31111,-0.379097 z" id="path4311" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.47307,65.562791 c 0.90759,-4.56338 -0.51314,-5.00645 0.0123,0.005 0.21508,-0.127115 0.57162,-0.876713 -0.0123,-0.005 z" id="path4313" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.76436,65.50651 c 0.46668,-1.427731 -1.15694,2.150671 0,0 z" id="path4315" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.96802,66.362147 c 1.08142,-0.840964 0.75082,-0.6846 0.0927,-0.208528 -0.029,0.03893 -0.13114,0.159406 -0.0927,0.208528 z" id="path4317" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.75475,66.366022 c 1.03364,-0.124564 0.19007,-0.865422 0,0 z" id="path4319" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 249.64482,66.291494 c 8.03664,0.02483 16.07328,0.04965 24.10993,0.07458 -1.82922,-0.93847 -6.95746,-0.155722 -10.05915,-0.430931 -4.61544,0.251525 -9.77667,-0.560127 -14.05077,0.3564 0.70834,-0.823932 0.0247,-0.208816 0,0 z" id="path4321" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 248.58537,65.93339 c 2.18373,1.332522 0.86764,-1.233341 0,0 z" id="path4323" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 246.81887,63.862179 c 4.20012,4.730897 0.0588,-0.351148 0,0 z" id="path4325" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.92283,63.9203 c 1.66591,0.911457 6.66205,0.09468 9.61265,0.339436 -1.66591,-0.911428 -6.66205,-0.09468 -9.61265,-0.339436 -0.21169,0.138135 -0.56175,0.888153 0,0 z" id="path4327" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.54363,64.327744 c 0.84119,-0.545031 0.12294,-0.510174 0,0 z" id="path4329" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.01482,57.605426 c 0.37291,2.201226 0.2133,5.672528 2.52884,6.722238 -0.0654,-0.802054 -2.14146,-2.69224 -1.86914,-4.411328 -0.36248,-0.202847 -0.0208,-3.755366 -0.6597,-2.31091 z" id="path4331" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 233.98525,57.248209 c 0.17414,1.137999 0.52516,-1.10642 0,0 z" id="path4333" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.68774,51.093804 c -0.90863,1.318233 -0.84352,7.747388 -0.4242,4.825282 -0.17654,-1.540682 0.39584,-4.090981 0.61672,-5.104788 l -0.11515,0.142804 -0.0773,0.136711 z" id="path4335" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.06556,49.561816 c -1.28607,0.73536 -1.72255,1.934031 -0.46183,0.436862 0.24257,0.0095 0.39059,-0.236641 0.46183,-0.436862 z" id="path4337" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.14792,49.567476 c -0.79739,0.505816 -0.124,0.571858 0,0 z" id="path4339" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.31958,49.211601 c -2.52931,0.278749 -8.60374,-0.107074 -8.88605,0.741908 2.72809,-0.282381 8.02544,0.0479 8.87251,-0.69175 0.0362,0.01262 -0.0164,-0.0969 0.0136,-0.05002 z" id="path4341" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.37855,47.334555 c -0.50962,5.19512 -0.1468,-0.573862 0,0 z" id="path4343" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 246.1388,46.583799 c -1.27748,0.353996 -0.96736,1.44032 -0.79393,0.575067 0.22772,-0.193609 0.7372,-0.151783 0.79393,-0.575067 z" id="path4345" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.51432,45.943618 c -1.74142,-0.818514 -6.94543,0.161759 -10.02347,0.0375 -4.784,0.200848 -9.56803,0.401818 -14.35205,0.602676 1.79397,0.796774 6.94566,-0.162764 10.03462,-0.04327 4.81305,-0.429767 10.07577,0.03101 14.62012,-0.932795 -0.0346,-0.229724 0.93869,0.0711 -0.27922,0.33591 z" id="path4347" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.60408,45.931213 c -0.005,-0.184068 0.32655,-0.323621 0,0 z" id="path4349" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.8256,45.912294 c -0.85048,-0.879522 -1.51051,-0.0042 -0.30604,0.401169 0.12904,-0.10772 0.25099,-0.239071 0.30604,-0.401169 z" id="path4351" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.00471,62.524884 c -0.58662,-0.874821 3.39405,0.5128 4.57394,-0.08415 7.12533,-0.224978 14.43211,0.270705 21.45383,-0.369737 0.61244,-5.135754 0.0946,-10.661333 0.0639,-15.895235 -0.86904,-1.381075 1.76909,0.598699 0.59916,1.657961 0.43226,4.940207 -0.57434,10.214118 0.6642,14.974051 0.66804,0.477898 2.9702,3.961938 1.74309,2.934914 -1.30477,-2.039864 -2.77874,-3.971916 -5.52665,-3.083062 -7.79304,-0.107448 -15.77925,0.360186 -23.46366,-0.05355 l -0.10775,-0.08115 z" id="path4353" style="fill:#eae9eb;fill-opacity:1;fill-rule:evenodd;stroke:none"></path>
  <path d="m 244.87608,61.859351 c 0.10524,0.983406 0.046,0.299483 0,0 z" id="path4355" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.60185,62.41124 c -1.41536,-1.11486 -0.68686,0.295141 0,0 z" id="path4357" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.37544,62.244526 c -8.26059,0.14209 -16.71257,-0.05984 -24.8547,0.295314 8.23643,-0.145222 16.84388,0.08053 24.8547,-0.295314 z" id="path4359" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.24901,61.286846 c 0.0783,0.960373 -1.63248,1.439418 -0.10689,0.723473 0.13111,-0.065 0.37698,-1.196782 0.10689,-0.723473 z" id="path4361" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.1367,46.678303 c 0.11886,4.746014 -0.0843,10.188116 0.23071,14.50933 -0.0968,-4.672693 0.044,-10.598439 -0.23071,-14.50933 z" id="path4363" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.70454,45.669718 c 0.61982,1.79168 0.72299,0.34869 0,0 z" id="path4365" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.73132,45.793424 c -0.13893,-0.03045 0.13324,-0.128183 0,0 z" id="path4367" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.73211,46.071039 c -1.39293,-1.110972 -0.91639,-0.006 0,0 z" id="path4369" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.81813,61.464486 c 0.13576,-4.911185 0.0521,-10.687841 -0.19946,-15.306284 0.0625,5.028873 0.14221,10.603359 0.19946,15.306284 z" id="path4371" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.40784,62.742073 c -0.73073,-2.428695 -0.867,-0.63039 0,0 z" id="path4373" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.67582,65.653185 c -2.87854,-3.904562 -2.12033,-2.227703 -0.0795,0.107427 0.0583,0.02076 0.0755,-0.192247 0.0795,-0.107427 z" id="path4375" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.06538,66.176815 c 1.2463,-0.67047 0.28181,-0.338504 0,0 z" id="path4377" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.96958,65.637464 c 0.15238,1.070635 0.3618,-0.204056 0,0 z" id="path4379" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.63101,62.760723 c 0.92779,1.330271 3.67408,4.271671 1.13839,1.144507 -0.26003,-0.101482 -1.13255,-1.719972 -1.13839,-1.144507 z" id="path4381" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.83531,62.722308 c 1.17342,0.315515 0.64621,-0.392821 0,0 z" id="path4383" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 246.11292,62.71288 c 7.84982,0.164224 16.7496,0.139663 24.79747,-0.121688 -8.18749,0.04416 -16.96326,0.07088 -24.79747,0.121688 z" id="path4385" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.93878,62.582275 c 1.75794,0.816434 1.11682,-0.104309 0,0 z" id="path4387" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.61139,56.104578 c 0.18096,-1.531209 -0.56215,-4.253223 0.62086,-5.252025 1.05871,3.194071 1.56233,7.366868 0.41086,10.449389 -0.98467,-1.426819 -0.78685,-3.516716 -1.03172,-5.197364 z" id="path4389" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 277.1531,50.73611 c -1.04509,1.339425 -0.60528,4.108809 -0.47582,5.311177 0.0382,-1.613045 -0.35083,-3.964455 0.47582,-5.311177 z" id="path4391" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 278.23984,55.971269 c 0.0575,-1.199315 -0.53371,-5.099257 -1.00869,-5.013061 0.73113,1.488079 0.7138,3.903969 1.00869,5.013061 z" id="path4393" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 277.63717,61.385107 c 1.05106,-1.353929 0.6036,-4.105678 0.4843,-5.314686 -0.0574,1.624692 0.35885,3.936513 -0.4843,5.314686 z" id="path4395" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.55894,56.14639 c 0.1003,1.313864 0.25988,4.798018 1.0835,5.071377 -0.8756,-1.401827 -0.77261,-3.998168 -1.0835,-5.071377 z" id="path4397" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.60628,52.701304 c 0.46931,3.441945 0.12392,5.612384 -3.93721,4.537493 -1.09179,-2.289455 -0.52458,-5.994238 3.16838,-4.533674 l 0.57426,-0.0025 0.19459,-0.0018 z" id="path4399" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.67734,56.047197 c 0.0286,-3.887867 -0.29747,-3.443991 -0.0932,0.123608 0.0285,-0.03462 0.0869,-0.06328 0.0932,-0.123608 z" id="path4401" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.65058,57.296659 c 0.49699,-8.733203 -0.16334,0.367443 0,0 z" id="path4403" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.36029,57.279253 c 4.85759,0.258806 4.60156,-0.426613 10e-6,-5e-5 0.20873,-0.356419 -0.0514,0.112199 -10e-6,5e-5 z" id="path4405" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.2787,56.224638 c -0.0177,2.098789 0.45783,0.134814 0,0 z" id="path4407" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.43022,52.646322 c -0.46428,4.025973 0.14464,3.413123 -0.063,0.136099 0.26,-0.371087 -0.23707,0.185553 0.063,-0.136099 z" id="path4409" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.6818,52.654892 c -4.83087,-0.212013 -4.55755,0.384688 2.2e-4,-4.39e-4 -0.23815,0.320219 0.005,-0.06227 -2.2e-4,4.39e-4 z" id="path4411" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.14188,57.073208 c 0.13748,-2.320298 -0.78126,-7.20642 2.98762,-6.207344 2.8929,0.631118 9.36598,-2.311491 7.91842,2.652316 1.50998,5.263471 -3.52022,3.782523 -7.00443,3.895888 -1.10772,-0.256646 -3.34965,0.484149 -3.90161,-0.34086 z" id="path4413" style="fill:#8d8b8e;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.86062,50.862069 c -0.77755,1.357622 -0.97289,5.201046 -0.68609,5.668247 -0.14715,-1.743955 0.2881,-4.85022 0.68609,-5.668247 z" id="path4415" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.1837,50.606331 c -3.39524,0.102765 -7.09212,0.01431 -10.39817,0.386912 3.28814,-0.156297 7.86887,-0.06932 10.39817,-0.386912 z" id="path4417" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.89633,57.501802 c 0.3507,-2.122298 0.26189,-10.301459 0.0991,-3.941819 -0.0533,1.004234 -0.0799,3.686343 -0.0991,3.941819 z" id="path4419" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.10088,57.464765 c 3.58851,-0.03879 7.39693,0.194873 10.87635,-0.09115 -3.45043,0.06524 -8.17272,-0.161426 -10.87635,0.09115 z" id="path4421" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.0894,57.115019 c 0.0553,0.895363 0.2358,-0.393545 0,0 z" id="path4423" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.83339,50.928355 c 1.28511,-2.645561 5.20588,-0.584773 7.48977,-1.403923 6.41367,0.09837 -0.59446,1.969945 -3.5064,1.295542 -1.32779,0.03602 -2.65559,0.07223 -3.98337,0.108401 z" id="path4425" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 235.96139,49.695035 c -1.25605,0.682043 -1.43783,1.647026 -0.23041,0.165804 0.10429,0.0086 0.2731,-0.05754 0.23041,-0.165804 z" id="path4427" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.04375,49.700727 c -0.49748,0.09308 0.0887,0.260541 0,0 z" id="path4429" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.22006,49.36786 c -2.18331,0.08224 -9.45031,0.212707 -8.68862,0.450081 2.76551,-0.173652 6.61474,-0.150274 8.68862,-0.450081 z" id="path4431" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.08093,50.719009 c 0.33002,-3.041262 -0.10511,-0.161792 0,0 z" id="path4433" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.77629,50.947129 c 3.36077,-0.07965 7.10781,0.02108 10.39315,-0.374823 -3.30876,0.147247 -7.73461,0.108923 -10.39315,0.374823 z" id="path4435" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.93455,57.425974 c 0.13257,2.304177 -1.09616,5.46372 1.74333,6.624704 -3.49191,-0.25965 -7.26499,0.564762 -10.63082,-0.18006 -1.48813,-1.772595 -1.63097,-4.253798 -1.88045,-6.462805 3.58932,0.006 7.17863,0.01201 10.76794,0.01812 z" id="path4437" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.75087,61.906461 c 0.49136,-4.756223 0.005,-4.969725 3e-5,-1e-5 0.0435,0.116687 0.25116,-0.30182 -3e-5,1e-5 z" id="path4439" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.47338,62.963999 c -0.91881,-1.951438 -0.976,-0.467088 0,0 z" id="path4441" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 246.63965,64.126506 c -2.09553,-2.379045 -1.05852,-0.47765 0,0 z" id="path4443" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.81866,64.053539 c 2.82018,0.196828 6.82406,0.182791 9.90207,-0.05567 -3.20566,0.03853 -6.93899,0.01124 -9.90207,0.05567 z" id="path4445" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 236.66342,64.208 c 0.4885,-0.184787 -0.14495,-0.211807 0,0 z" id="path4447" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 234.20365,57.352109 c 0.16811,2.1586 0.13124,5.785685 2.45994,6.85552 -2.00128,-1.019766 -2.34909,-5.805768 -2.45994,-6.85552 z" id="path4449" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.00514,57.391602 c -3.5868,0.0398 -7.40711,-0.199924 -10.8764,0.09115 3.45255,-0.06462 8.16598,0.156455 10.8764,-0.09115 z" id="path4451" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.81262,61.910736 c 0.38929,-4.937217 -0.18443,-10.22579 0.70522,-14.983643 8.37757,-0.555143 16.98507,-0.937945 25.34243,-1.052564 0.82566,5.023858 0.19986,10.526087 0.41994,15.713922 -1.35206,1.842061 -4.68196,0.176711 -6.68553,0.765278 -6.4999,-0.187973 -13.26265,0.510683 -19.61357,-0.183564 -0.0716,-0.07695 -0.097,-0.182423 -0.16852,-0.259387 z" id="path4453" style="fill:#bdbbbf;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.76186,61.896917 c 0.11852,0.211593 0.13674,-0.302924 0,0 z" id="path4455" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.26942,47.479814 c -0.31516,4.58673 -0.45312,10.030333 -0.40014,14.327484 0.13126,-4.701389 0.29398,-9.965677 0.40014,-14.327484 z" id="path4457" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 246.02504,46.70604 c -0.93653,0.248887 -1.12276,1.247933 -0.33117,0.187623 0.0705,-0.02817 0.45945,-0.0273 0.33117,-0.187623 z" id="path4459" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.71413,45.680718 c -8.2096,0.411271 -16.68747,0.509329 -24.75434,1.166988 8.25592,-0.43516 16.44507,-0.501668 24.75434,-1.166988 z" id="path4461" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.25014,46.591171 c -0.39612,-1.316651 -0.65105,-0.699348 -0.0614,0.08083 l 0.0415,-0.03234 0.02,-0.04857 z" id="path4463" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.24901,61.286846 c 0.16216,-4.677042 0.11302,-10.224763 -0.11231,-14.608543 0.0383,4.831902 0.0744,9.872604 0.11231,14.608543 z" id="path4465" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.30395,62.384144 c 1.13521,0.110439 1.2884,-2.108212 0.64811,-0.289208 -0.1227,0.206569 -0.76146,0.05587 -0.64811,0.289208 z" id="path4467" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.52074,62.53985 c 8.25565,-0.145931 16.74157,0.08211 24.8547,-0.295314 -8.24153,0.141595 -16.81471,-0.05856 -24.8547,0.295314 z" id="path4469" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 244.75768,61.958553 c 1.29985,1.485394 0.64032,-0.08481 0,0 z" id="path4471" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.42308,63.034855 c -1.07893,-0.831109 2.76002,0.156981 3.52799,-0.273732 7.56627,0.08317 15.35025,-0.318423 22.79485,0.04629 0.50678,0.940037 4.23739,3.889196 0.98589,3.353341 -7.92727,-0.199654 -15.97304,0.313772 -23.83051,-0.309284 -1.16763,-0.928371 -2.31732,-1.879624 -3.47822,-2.816594 z" id="path4473" style="fill:#8d8b8e;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.055,62.454018 c 0.27718,1.163176 0.34697,0.0081 -0.0802,0.02341 -0.0382,0.06197 -0.0869,0.28352 0.0802,-0.02341 z" id="path4475" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 246.13598,62.70827 c -1.3865,-0.319619 -1.19959,0.255077 7e-5,0.08491 0.0809,-0.05121 -0.0593,-0.100821 -7e-5,-0.08491 z" id="path4477" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 270.91037,62.591182 c -8.26086,0.125693 -16.7131,-0.09354 -24.85549,0.245718 8.2414,-0.125187 16.81499,0.09616 24.85549,-0.245718 z" id="path4479" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.70607,62.629597 c -1.90046,-0.101649 -0.14058,0.466864 0,0 z" id="path4481" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.06027,65.519842 c -1.17166,-1.699639 -3.7046,-4.221715 -0.98612,-0.982798 0.21574,-0.04309 0.86756,1.499058 0.98612,0.982798 z" id="path4483" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.06616,66.226442 c 0.19577,-1.528509 -0.15815,0.159321 0,0 z" id="path4485" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.85286,66.230306 c 0.75945,-0.02814 -0.0896,-0.328423 0,0 z" id="path4487" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 249.74899,66.158294 c 8.03793,-0.06206 16.26534,0.220612 24.185,-0.05662 -7.95978,0.06036 -16.70768,-0.21915 -24.185,0.05662 z" id="path4489" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 248.68953,65.800211 c 1.44219,0.812477 0.93054,-0.146649 0,0 z" id="path4491" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 245.47338,62.963999 c 3.0457,3.183514 3.99879,2.896388 -0.0365,0.02028 -0.11063,0.02723 -0.0845,0.300371 0.0365,-0.02028 z" id="path4493" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.67361,46.110385 c 0.40127,1.488525 4.7347,5.211331 1.23674,4.853102 -1.01852,3.170882 -0.96495,7.487256 0.6649,10.363532 2.3506,1.216493 0.96551,7.109527 -1.21497,1.479205 -1.22744,-4.826276 -0.24202,-10.159447 -0.66695,-15.165201 -0.006,-0.510204 -0.0131,-1.020449 -0.0197,-1.53065 z" id="path4495" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.94045,46.353851 c -0.40348,-0.811557 -0.25216,0.437196 0,0 z" id="path4497" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.09174,50.132451 c -1.91606,-4.078057 -2.80581,-4.047832 0.0388,0.0092 0.0907,-0.01445 0.13263,-0.338371 -0.0388,-0.0092 z" id="path4499" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.41151,50.968077 c -0.0923,-1.57739 -0.32256,-0.233353 0.0413,-0.03175 0.11285,-0.01216 0.059,-0.310979 -0.0413,0.03175 z" id="path4501" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.04079,50.869299 c 2.83664,0.37524 0.92403,-0.363183 0,0 z" id="path4503" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.39711,56.125425 c -0.17372,-1.537924 0.0137,-4.233035 0.527,-5.212515 -1.00502,1.338238 -0.60789,4.178894 -0.527,5.212515 z" id="path4505" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.61325,61.251818 c -1.28364,-1.15951 -0.82157,-3.893623 -1.33451,-5.02731 0.21165,1.054965 0.15227,5.044912 1.33451,5.02731 z" id="path4507" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.61264,61.27541 c -3.82914,-1.475481 0.14086,-0.276199 0,0 z" id="path4509" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.57118,65.427115 c 0.28345,-4.44125 -0.23915,-4.664599 -0.005,0.01206 0.093,0.03487 0.22561,-0.288245 0.005,-0.01206 z" id="path4511" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 274.55742,65.752407 c 0.17405,-0.97303 0.0338,0.184359 0,0 z" id="path4513" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.30368,62.875262 c 2.98062,4.062654 1.99316,1.928124 0.0336,-0.0988 l -0.0344,0.04919 7e-4,0.0497 z" id="path4515" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.81813,61.464486 c 0.34264,1.834945 0.69,1.233375 0.0566,-0.10302 l -0.0428,0.05274 -0.0138,0.05022 z" id="path4517" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 271.72746,46.048011 c -0.11154,4.927873 -0.0582,10.739034 0.20907,15.317272 -0.11214,-5.043955 -0.0533,-10.496787 -0.26596,-15.299007 -0.11732,0.0013 -0.023,0.288875 0.0568,-0.01875 z" id="path4519" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.6888,57.220828 c -0.0398,1.2057 0.57667,3.445227 0.81677,4.089518 -1.87349,-0.141113 -5.04029,0.994447 -4.81502,-2.070981 -1.35219,-3.401998 2.00712,-1.529814 3.99825,-2.018527 z m -3.67524,-6.285244 c 2.16609,-0.450198 5.6805,-0.390385 3.01849,1.768521 -1.61972,-0.241485 -5.15812,0.989711 -3.01849,-1.768521 z" id="path4521" style="fill:#131315;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 277.72925,61.246894 c -0.99685,-0.946294 -0.59615,-3.121949 -1.09308,-3.983854 0.21333,0.720539 0.16828,4.143839 1.09308,3.983854 z" id="path4523" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.51866,61.396066 c 1.68892,0.07646 6.38769,-0.126886 2.16894,-0.143508 -0.54943,0.138105 -1.82252,-0.257906 -2.16894,0.143508 z" id="path4525" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.36029,57.279253 c 0.12485,1.011037 0.3764,4.007681 1.17557,3.954845 -0.98185,-0.961933 -0.70716,-3.161215 -1.17557,-3.954845 z" id="path4527" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.72703,57.145019 c -5.46797,-0.203702 -4.96619,0.499608 0,0 z" id="path4529" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 277.10945,50.739304 c -5.36894,-0.01862 -4.8755,0.54382 0,0 z" id="path4531" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 276.6818,52.654892 c 0.18846,-1.304039 0.5321,-2.797799 -0.0548,-0.656364 0.13427,0.05632 -0.33557,1.033309 0.0548,0.656364 z" id="path4533" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 272.36722,52.782422 c 5.42568,0.176496 4.91123,-0.43454 0,0 z" id="path4535" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 273.04079,50.869299 c -1.04158,1.382797 -0.67251,2.429078 -0.14567,0.165447 0.0685,-0.04318 0.18336,0.01232 0.14567,-0.165447 z" id="path4537" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none"></path>
  <path d="m 92.636217,27.988265 c 5.998252,0.25773 10.775913,12.436323 10.671213,27.201643 -0.1023,14.42798 -4.836791,26.05345 -10.698233,26.2694" id="path7291" style="fill:none;stroke:#000000;stroke-width:1.03397787;stroke-opacity:1"></path>
  <path d="m 128.63622,27.988265 c 5.99825,0.25773 10.77591,12.436323 10.67121,27.201643 -0.1023,14.42798 -4.83679,26.05345 -10.69823,26.2694" id="path8061" style="fill:none;stroke:#000000;stroke-width:1.03397787;stroke-opacity:1"></path>
  <path d="m 92.473837,81.653168 c 36.417503,0 36.609173,0 36.609173,0" id="path8063" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 92.473847,28.228185 c 36.417493,0 36.609163,0 36.609163,0" id="path8065" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 122.07106,56.968815 c 0,88.438405 0,89.020235 0,89.020235" id="path8076" style="fill:none;stroke:#000000;stroke-width:1.35910594;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.35910595, 1.35910595;stroke-dashoffset:0.40773181"></path>
  <path d="m 17.252941,17.302309 0,0 216.169209,38.565398 -215.15433,35.520762 0,0" id="path5553" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 24.084912,48.763555 -6.26018,7.442445 6.532362,7.442445 0,-0.338293" id="path6069" style="fill:none;stroke:#000000;stroke-width:0.89698046px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 18.389174,56.206 84.451886,-0.338293 0,0" id="path6071" style="fill:none;stroke:#000000;stroke-width:0.98943692px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 121.44718,56.544293 110.6218,-1.014879 0,0" id="path6073" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 94.383738,120.81996 55.818342,0 0,0" id="path6230" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 99.11984,116.76044 -4.397809,4.05952 4.059516,4.39781 0.338293,-0.67659 0,0" id="path6232" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 144.4511,116.42215 5.07439,4.39781 -4.39781,4.7361 -0.33829,0" id="path6234" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 149.52549,115.74556 0.33829,10.48708 -0.33829,0" id="path6236" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 93.707152,116.76044 0,9.13391 0,0" id="path6238" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 121.78547,144.16217 -101.670951,0.67658 0,0" id="path6240" style="fill:none;stroke:#000000;stroke-width:0.98942477px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 23.757452,139.08778 -3.642933,5.41268 3.974109,5.0744 0,-0.3383" id="path6242" style="fill:none;stroke:#000000;stroke-width:0.98942477px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="m 19.120992,138.74948 0,11.50196 0,0" id="path6244" style="fill:none;stroke:#000000;stroke-width:0.98942477px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <path d="M 17.252941,16.964016 18.26782,92.065055 17.929527,91.050176" id="path6246" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  <text x="118.06425" y="11.551328" id="text6248" xml:space="preserve" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><tspan x="118.06425" y="11.551328" id="tspan6250"></tspan></text>
  <text x="167.11671" y="123.86459" id="text6252" xml:space="preserve" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" sodipodi:linespacing="125%"><tspan x="167.11671" y="123.86459" id="tspan6254">surface_tolerance</tspan></text>
  <text x="168.13161" y="145.17705" id="text6256" xml:space="preserve" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" sodipodi:linespacing="125%"><tspan x="168.13161" y="145.17705" id="tspan6258">min_thickness</tspan></text>
</svg></td>
<td><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="305.14026" height="166.15121" id="svg9581" inkscape:version="0.91 r13725" sodipodi:docname="reconstruct_surface_stereo-distance_2.svg">
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1483" inkscape:window-height="1069" id="namedview4409" showgrid="false" inkscape:zoom="8.3608806" inkscape:cx="162.48756" inkscape:cy="48.416171" inkscape:window-x="24" inkscape:window-y="53" inkscape:window-maximized="0" inkscape:current-layer="svg9581" inkscape:snap-bbox="true" inkscape:bbox-paths="true" inkscape:bbox-nodes="true" inkscape:snap-bbox-edge-midpoints="true" inkscape:snap-bbox-midpoints="true" inkscape:object-paths="true" inkscape:snap-intersection-paths="true" inkscape:object-nodes="true" inkscape:snap-smooth-nodes="true" inkscape:snap-global="false"></sodipodi:namedview>
  <defs id="defs9583"></defs>
  <metadata id="metadata9586">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"></dc:type>
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <path d="m 236.66304,35.267565 c 0.59176,-0.214119 0.0865,-0.200425 0,0 z" id="path4329" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
  <path d="m 234.88406,32.626662 c 0.26234,0.864765 0.15005,2.228486 1.779,2.640871 -0.046,-0.315092 -1.50648,-1.057662 -1.31491,-1.733016 -0.255,-0.07969 -0.0146,-1.475318 -0.46409,-0.907855 z" id="path4331" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
  <path d="m 236.38466,29.468906 c -0.56095,0.198713 -0.0872,0.224658 0,0 z" id="path4339" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
  <path d="m 236.74731,35.220522 c 0.34365,-0.07259 -0.10197,-0.08321 0,0 z" id="path4447" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
  <path d="m 235.0169,32.527145 c 0.11826,0.848019 0.0923,2.272941 1.73053,2.693232 -1.40787,-0.400621 -1.65255,-2.280831 -1.73053,-2.693232 z" id="path4449" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
  <g id="g6312">
    <g id="g6315"></g>
  </g>
  <path d="m 203.99376,117.41897 0.17709,36.19442" id="path8076" style="fill:none;stroke:#000000;stroke-width:0.71449226;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.71449225, 0.71449225;stroke-dashoffset:0.21434769;stroke-opacity:1" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 184.69322,143.72557 39.26739,0 0,0" id="path6230" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 188.025,142.13076 -3.0938,1.59481 2.85582,1.7277 0.23798,-0.2658 0,0" id="path6232" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 219.91488,141.99786 3.56976,1.72771 -3.09379,1.8606 -0.23799,0" id="path6234" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 223.48464,141.73206 0.23798,4.11991 -0.23798,0" id="path6236" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 184.21725,142.13076 0,3.58831 0,0" id="path6238" inkscape:connector-curvature="0"></path>
  <g id="g8216" transform="matrix(1.4013991,0,0,1,-81.873358,0)">
    <path inkscape:connector-curvature="0" id="path6240" d="m 203.96994,152.89569 -71.52404,0.2658 0,0" style="fill:none;stroke:#000000;stroke-width:0.52014804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
    <path sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" id="path6242" d="m 135.00865,150.90219 -2.56275,2.1264 2.79573,1.99351 0,-0.13291" style="fill:none;stroke:#000000;stroke-width:0.52014804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
    <path inkscape:connector-curvature="0" id="path6244" d="m 131.74697,150.76928 0,4.51862 0,0" style="fill:none;stroke:#000000;stroke-width:0.52014804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  </g>
  <text xml:space="preserve" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" x="118.06425" y="11.551328" id="text6248" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan6250"></tspan></text>
  <g id="g7729" transform="matrix(1.6162887,0,0,2.0329189,60.190859,-156.39482)">
    <g id="g7722">
      <path sodipodi:type="arc" style="fill:none;stroke:#000000;stroke-width:1.37917864;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.32970002;stroke-opacity:1;marker-start:none" id="path7492" sodipodi:cx="54.296021" sodipodi:cy="133.67509" sodipodi:rx="32.30698" sodipodi:ry="10.825375" d="m 86.603001,133.67509 a 32.30698,10.825375 0 0 1 -16.175897,9.37938 32.30698,10.825375 0 0 1 -32.329355,-0.013 32.30698,10.825375 0 0 1 -16.108615,-9.39237" transform="translate(2.3680508,1.0148789)" sodipodi:start="0" sodipodi:end="3.1439946" sodipodi:open="true"></path>
      <path transform="translate(3.213784,-35.859059)" sodipodi:type="arc" style="fill:none;stroke:#000000;stroke-width:1.37917861;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.32970003" id="path7492-7" sodipodi:cx="54.296021" sodipodi:cy="133.67509" sodipodi:rx="32.30698" sodipodi:ry="10.825375" d="m 86.603001,133.67509 a 32.30698,10.825375 0 0 1 -32.30698,10.82538 32.30698,10.825375 0 0 1 -32.306981,-10.82538 32.30698,10.825375 0 0 1 32.306981,-10.82537 32.30698,10.825375 0 0 1 32.30698,10.82537 z"></path>
      <path style="fill:none;stroke:#000000;stroke-width:1.37917864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 89.721899,98.663491 88.97105,134.7085" id="path7514" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"></path>
      <path style="fill:none;stroke:#000000;stroke-width:1.37917864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 24.357091,134.68997 0.676586,-37.181151 2.4e-5,-0.01312" id="path7516" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"></path>
    </g>
  </g>
  <g id="g7328" transform="matrix(0.99990952,0.01345151,-0.01345151,0.99990952,-0.69391353,-20.314828)">
    <g id="g7201">
      <g id="g7053">
        <g id="g6931">
          <g id="g6358" transform="translate(23.342215,65.967128)">
            <path inkscape:connector-curvature="0" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4295" d="m 271.67361,46.110385 c 1.74952,2.007166 2.10696,6.014501 5.51546,4.709885 1.16695,3.182178 1.53914,7.307146 0.48674,10.487931 -3.6132,-1.01979 -3.27119,1.705277 -3.07926,4.451984 -2.25934,1.148205 -5.59512,-0.02899 -8.18128,0.384932 -5.85374,-0.300649 -11.96295,0.52057 -17.67506,-0.416469 -3.21023,-3.437078 -8.51834,-0.666965 -12.58445,-1.778858 -2.50691,-3.854542 -2.7317,-9.474762 -0.95404,-13.694169 2.26846,-1.415075 5.65453,-0.174997 8.26916,-0.777666 2.94458,1.16751 0.46018,-3.194154 3.0898,-2.720308 8.26116,-0.243085 16.6399,-0.893754 24.83558,-0.916553 0.11801,0.06012 0.19367,0.172511 0.27731,0.26962 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4297" d="m 272.03858,46.218154 c -0.58965,-0.911289 -0.47561,1.149751 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4299" d="m 273.99359,50.268156 c -0.95041,-4.375514 -3.39095,-4.149199 0.0645,-0.03682 0.20683,-0.126965 0.48388,-0.840465 -0.0645,0.03682 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4301" d="m 274.6042,50.688183 c -0.34374,-2.558875 -0.75888,1.553139 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4303" d="m 276.92417,51.001124 c -2.11254,-1.430731 -2.89236,1.237281 0.30366,-0.361062 l -0.005,-0.02304 -0.299,0.384071 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4305" d="m 277.25726,50.60289 c -0.72156,0.642399 -0.10291,0.418273 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4307" d="m 278.32588,55.830609 c -0.13621,-1.019487 -0.17983,-5.776088 -1.29202,-4.804478 1.03204,1.308354 0.59729,4.190835 1.14274,5.047425 l 0.11515,-0.142783 0.0342,-0.100293 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4309" d="m 277.82738,61.111218 c 0.14499,0.582702 0.95866,-3.999989 0.49853,-5.280638 -0.45992,1.238028 -0.77555,5.676112 -0.49849,5.280659 -0.0709,0.105294 -0.4664,0.550206 -4e-5,-2.1e-5 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4311" d="m 274.70118,61.128715 c 2.51337,1.407336 4.3731,-1.03153 -0.31111,0.379097 0.94203,-1.277151 -0.69321,0.894515 0.31111,-0.379097 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4313" d="m 274.47307,65.562791 c 0.90759,-4.56338 -0.51314,-5.00645 0.0123,0.005 0.21508,-0.127115 0.57162,-0.876713 -0.0123,-0.005 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4315" d="m 274.76436,65.50651 c 0.46668,-1.427731 -1.15694,2.150671 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4317" d="m 273.96802,66.362147 c 1.08142,-0.840964 0.75082,-0.6846 0.0927,-0.208528 -0.029,0.03893 -0.13114,0.159406 -0.0927,0.208528 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4319" d="m 273.75475,66.366022 c 1.03364,-0.124564 0.19007,-0.865422 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4321" d="m 249.64482,66.291494 c 8.03664,0.02483 16.07328,0.04965 24.10993,0.07458 -1.82922,-0.93847 -6.95746,-0.155722 -10.05915,-0.430931 -4.61544,0.251525 -9.77667,-0.560127 -14.05077,0.3564 0.70834,-0.823932 0.0247,-0.208816 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4323" d="m 248.58537,65.93339 c 2.18373,1.332522 0.86764,-1.233341 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4325" d="m 246.81887,63.862179 c 4.20012,4.730897 0.0588,-0.351148 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4327" d="m 236.92283,63.9203 c 1.66591,0.911457 6.66205,0.09468 9.61265,0.339436 -1.66591,-0.911428 -6.66205,-0.09468 -9.61265,-0.339436 -0.21169,0.138135 -0.56175,0.888153 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4341" d="m 245.31958,49.211601 c -2.52931,0.278749 -8.60374,-0.107074 -8.88605,0.741908 2.72809,-0.282381 8.02544,0.0479 8.87251,-0.69175 0.0362,0.01262 -0.0164,-0.0969 0.0136,-0.05002 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4343" d="m 245.37855,47.334555 c -0.50962,5.19512 -0.1468,-0.573862 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4345" d="m 246.1388,46.583799 c -1.27748,0.353996 -0.96736,1.44032 -0.79393,0.575067 0.22772,-0.193609 0.7372,-0.151783 0.79393,-0.575067 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4347" d="m 270.51432,45.943618 c -1.74142,-0.818514 -6.94543,0.161759 -10.02347,0.0375 -4.784,0.200848 -9.56803,0.401818 -14.35205,0.602676 1.79397,0.796774 6.94566,-0.162764 10.03462,-0.04327 4.81305,-0.429767 10.07577,0.03101 14.62012,-0.932795 -0.0346,-0.229724 0.93869,0.0711 -0.27922,0.33591 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4349" d="m 270.60408,45.931213 c -0.005,-0.184068 0.32655,-0.323621 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4351" d="m 271.8256,45.912294 c -0.85048,-0.879522 -1.51051,-0.0042 -0.30604,0.401169 0.12904,-0.10772 0.25099,-0.239071 0.30604,-0.401169 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#eae9eb;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path4353" d="m 245.00471,62.524884 c -0.58662,-0.874821 3.39405,0.5128 4.57394,-0.08415 7.12533,-0.224978 14.43211,0.270705 21.45383,-0.369737 0.61244,-5.135754 0.0946,-10.661333 0.0639,-15.895235 -0.86904,-1.381075 1.76909,0.598699 0.59916,1.657961 0.43226,4.940207 -0.57434,10.214118 0.6642,14.974051 0.66804,0.477898 2.9702,3.961938 1.74309,2.934914 -1.30477,-2.039864 -2.77874,-3.971916 -5.52665,-3.083062 -7.79304,-0.107448 -15.77925,0.360186 -23.46366,-0.05355 l -0.10775,-0.08115 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4355" d="m 244.87608,61.859351 c 0.10524,0.983406 0.046,0.299483 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4357" d="m 245.60185,62.41124 c -1.41536,-1.11486 -0.68686,0.295141 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4359" d="m 270.37544,62.244526 c -8.26059,0.14209 -16.71257,-0.05984 -24.8547,0.295314 8.23643,-0.145222 16.84388,0.08053 24.8547,-0.295314 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4361" d="m 271.24901,61.286846 c 0.0783,0.960373 -1.63248,1.439418 -0.10689,0.723473 0.13111,-0.065 0.37698,-1.196782 0.10689,-0.723473 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4363" d="m 271.1367,46.678303 c 0.11886,4.746014 -0.0843,10.188116 0.23071,14.50933 -0.0968,-4.672693 0.044,-10.598439 -0.23071,-14.50933 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4365" d="m 270.70454,45.669718 c 0.61982,1.79168 0.72299,0.34869 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4367" d="m 270.73132,45.793424 c -0.13893,-0.03045 0.13324,-0.128183 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4369" d="m 271.73211,46.071039 c -1.39293,-1.110972 -0.91639,-0.006 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4371" d="m 271.81813,61.464486 c 0.13576,-4.911185 0.0521,-10.687841 -0.19946,-15.306284 0.0625,5.028873 0.14221,10.603359 0.19946,15.306284 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4373" d="m 272.40784,62.742073 c -0.73073,-2.428695 -0.867,-0.63039 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4375" d="m 274.67582,65.653185 c -2.87854,-3.904562 -2.12033,-2.227703 -0.0795,0.107427 0.0583,0.02076 0.0755,-0.192247 0.0795,-0.107427 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4377" d="m 274.06538,66.176815 c 1.2463,-0.67047 0.28181,-0.338504 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4379" d="m 273.96958,65.637464 c 0.15238,1.070635 0.3618,-0.204056 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4381" d="m 271.63101,62.760723 c 0.92779,1.330271 3.67408,4.271671 1.13839,1.144507 -0.26003,-0.101482 -1.13255,-1.719972 -1.13839,-1.144507 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4383" d="m 270.83531,62.722308 c 1.17342,0.315515 0.64621,-0.392821 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4385" d="m 246.11292,62.71288 c 7.84982,0.164224 16.7496,0.139663 24.79747,-0.121688 -8.18749,0.04416 -16.96326,0.07088 -24.79747,0.121688 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4387" d="m 244.93878,62.582275 c 1.75794,0.816434 1.11682,-0.104309 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4389" d="m 276.61139,56.104578 c 0.18096,-1.531209 -0.56215,-4.253223 0.62086,-5.252025 1.05871,3.194071 1.56233,7.366868 0.41086,10.449389 -0.98467,-1.426819 -0.78685,-3.516716 -1.03172,-5.197364 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4391" d="m 277.1531,50.73611 c -1.04509,1.339425 -0.60528,4.108809 -0.47582,5.311177 0.0382,-1.613045 -0.35083,-3.964455 0.47582,-5.311177 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4393" d="m 278.23984,55.971269 c 0.0575,-1.199315 -0.53371,-5.099257 -1.00869,-5.013061 0.73113,1.488079 0.7138,3.903969 1.00869,5.013061 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4395" d="m 277.63717,61.385107 c 1.05106,-1.353929 0.6036,-4.105678 0.4843,-5.314686 -0.0574,1.624692 0.35885,3.936513 -0.4843,5.314686 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4397" d="m 276.55894,56.14639 c 0.1003,1.313864 0.25988,4.798018 1.0835,5.071377 -0.8756,-1.401827 -0.77261,-3.998168 -1.0835,-5.071377 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4399" d="m 276.60628,52.701304 c 0.46931,3.441945 0.12392,5.612384 -3.93721,4.537493 -1.09179,-2.289455 -0.52458,-5.994238 3.16838,-4.533674 l 0.57426,-0.0025 0.19459,-0.0018 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4401" d="m 276.67734,56.047197 c 0.0286,-3.887867 -0.29747,-3.443991 -0.0932,0.123608 0.0285,-0.03462 0.0869,-0.06328 0.0932,-0.123608 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4403" d="m 276.65058,57.296659 c 0.49699,-8.733203 -0.16334,0.367443 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4405" d="m 272.36029,57.279253 c 4.85759,0.258806 4.60156,-0.426613 10e-6,-5e-5 0.20873,-0.356419 -0.0514,0.112199 -10e-6,5e-5 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4407" d="m 272.2787,56.224638 c -0.0177,2.098789 0.45783,0.134814 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4409" d="m 272.43022,52.646322 c -0.46428,4.025973 0.14464,3.413123 -0.063,0.136099 0.26,-0.371087 -0.23707,0.185553 0.063,-0.136099 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4411" d="m 276.6818,52.654892 c -4.83087,-0.212013 -4.55755,0.384688 2.2e-4,-4.39e-4 -0.23815,0.320219 0.005,-0.06227 -2.2e-4,4.39e-4 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#8d8b8e;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4413" d="m 234.14188,57.073208 c 0.13748,-2.320298 -0.78126,-7.20642 2.98762,-6.207344 2.8929,0.631118 9.36598,-2.311491 7.91842,2.652316 1.50998,5.263471 -3.52022,3.782523 -7.00443,3.895888 -1.10772,-0.256646 -3.34965,0.484149 -3.90161,-0.34086 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4417" d="m 245.1837,50.606331 c -3.39524,0.102765 -7.09212,0.01431 -10.39817,0.386912 3.28814,-0.156297 7.86887,-0.06932 10.39817,-0.386912 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4419" d="m 244.89633,57.501802 c 0.3507,-2.122298 0.26189,-10.301459 0.0991,-3.941819 -0.0533,1.004234 -0.0799,3.686343 -0.0991,3.941819 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4421" d="m 234.10088,57.464765 c 3.58851,-0.03879 7.39693,0.194873 10.87635,-0.09115 -3.45043,0.06524 -8.17272,-0.161426 -10.87635,0.09115 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4425" d="m 234.83339,50.928355 c 1.28511,-2.645561 5.20588,-0.584773 7.48977,-1.403923 6.41367,0.09837 -0.59446,1.969945 -3.5064,1.295542 -1.32779,0.03602 -2.65559,0.07223 -3.98337,0.108401 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4431" d="m 245.22006,49.36786 c -2.18331,0.08224 -9.45031,0.212707 -8.68862,0.450081 2.76551,-0.173652 6.61474,-0.150274 8.68862,-0.450081 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4433" d="m 245.08093,50.719009 c 0.33002,-3.041262 -0.10511,-0.161792 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4435" d="m 234.77629,50.947129 c 3.36077,-0.07965 7.10781,0.02108 10.39315,-0.374823 -3.30876,0.147247 -7.73461,0.108923 -10.39315,0.374823 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4437" d="m 244.93455,57.425974 c 0.13257,2.304177 -1.09616,5.46372 1.74333,6.624704 -3.49191,-0.25965 -7.26499,0.564762 -10.63082,-0.18006 -1.48813,-1.772595 -1.63097,-4.253798 -1.88045,-6.462805 3.58932,0.006 7.17863,0.01201 10.76794,0.01812 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4439" d="m 244.75087,61.906461 c 0.49136,-4.756223 0.005,-4.969725 3e-5,-1e-5 0.0435,0.116687 0.25116,-0.30182 -3e-5,1e-5 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4441" d="m 245.47338,62.963999 c -0.91881,-1.951438 -0.976,-0.467088 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4443" d="m 246.63965,64.126506 c -2.09553,-2.379045 -1.05852,-0.47765 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4445" d="m 236.81866,64.053539 c 2.82018,0.196828 6.82406,0.182791 9.90207,-0.05567 -3.20566,0.03853 -6.93899,0.01124 -9.90207,0.05567 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4451" d="m 245.00514,57.391602 c -3.5868,0.0398 -7.40711,-0.199924 -10.8764,0.09115 3.45255,-0.06462 8.16598,0.156455 10.8764,-0.09115 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#bdbbbf;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4453" d="m 244.81262,61.910736 c 0.38929,-4.937217 -0.18443,-10.22579 0.70522,-14.983643 8.37757,-0.555143 16.98507,-0.937945 25.34243,-1.052564 0.82566,5.023858 0.19986,10.526087 0.41994,15.713922 -1.35206,1.842061 -4.68196,0.176711 -6.68553,0.765278 -6.4999,-0.187973 -13.26265,0.510683 -19.61357,-0.183564 -0.0716,-0.07695 -0.097,-0.182423 -0.16852,-0.259387 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4455" d="m 244.76186,61.896917 c 0.11852,0.211593 0.13674,-0.302924 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4457" d="m 245.26942,47.479814 c -0.31516,4.58673 -0.45312,10.030333 -0.40014,14.327484 0.13126,-4.701389 0.29398,-9.965677 0.40014,-14.327484 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4459" d="m 246.02504,46.70604 c -0.93653,0.248887 -1.12276,1.247933 -0.33117,0.187623 0.0705,-0.02817 0.45945,-0.0273 0.33117,-0.187623 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4461" d="m 270.71413,45.680718 c -8.2096,0.411271 -16.68747,0.509329 -24.75434,1.166988 8.25592,-0.43516 16.44507,-0.501668 24.75434,-1.166988 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4463" d="m 271.25014,46.591171 c -0.39612,-1.316651 -0.65105,-0.699348 -0.0614,0.08083 l 0.0415,-0.03234 0.02,-0.04857 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4465" d="m 271.24901,61.286846 c 0.16216,-4.677042 0.11302,-10.224763 -0.11231,-14.608543 0.0383,4.831902 0.0744,9.872604 0.11231,14.608543 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4467" d="m 270.30395,62.384144 c 1.13521,0.110439 1.2884,-2.108212 0.64811,-0.289208 -0.1227,0.206569 -0.76146,0.05587 -0.64811,0.289208 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4469" d="m 245.52074,62.53985 c 8.25565,-0.145931 16.74157,0.08211 24.8547,-0.295314 -8.24153,0.141595 -16.81471,-0.05856 -24.8547,0.295314 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4471" d="m 244.75768,61.958553 c 1.29985,1.485394 0.64032,-0.08481 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#8d8b8e;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4473" d="m 245.42308,63.034855 c -1.07893,-0.831109 2.76002,0.156981 3.52799,-0.273732 7.56627,0.08317 15.35025,-0.318423 22.79485,0.04629 0.50678,0.940037 4.23739,3.889196 0.98589,3.353341 -7.92727,-0.199654 -15.97304,0.313772 -23.83051,-0.309284 -1.16763,-0.928371 -2.31732,-1.879624 -3.47822,-2.816594 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4475" d="m 245.055,62.454018 c 0.27718,1.163176 0.34697,0.0081 -0.0802,0.02341 -0.0382,0.06197 -0.0869,0.28352 0.0802,-0.02341 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4477" d="m 246.13598,62.70827 c -1.3865,-0.319619 -1.19959,0.255077 7e-5,0.08491 0.0809,-0.05121 -0.0593,-0.100821 -7e-5,-0.08491 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4479" d="m 270.91037,62.591182 c -8.26086,0.125693 -16.7131,-0.09354 -24.85549,0.245718 8.2414,-0.125187 16.81499,0.09616 24.85549,-0.245718 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4481" d="m 271.70607,62.629597 c -1.90046,-0.101649 -0.14058,0.466864 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4483" d="m 274.06027,65.519842 c -1.17166,-1.699639 -3.7046,-4.221715 -0.98612,-0.982798 0.21574,-0.04309 0.86756,1.499058 0.98612,0.982798 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4485" d="m 274.06616,66.226442 c 0.19577,-1.528509 -0.15815,0.159321 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4487" d="m 273.85286,66.230306 c 0.75945,-0.02814 -0.0896,-0.328423 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4489" d="m 249.74899,66.158294 c 8.03793,-0.06206 16.26534,0.220612 24.185,-0.05662 -7.95978,0.06036 -16.70768,-0.21915 -24.185,0.05662 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4491" d="m 248.68953,65.800211 c 1.44219,0.812477 0.93054,-0.146649 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4493" d="m 245.47338,62.963999 c 3.0457,3.183514 3.99879,2.896388 -0.0365,0.02028 -0.11063,0.02723 -0.0845,0.300371 0.0365,-0.02028 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4495" d="m 271.67361,46.110385 c 0.40127,1.488525 4.7347,5.211331 1.23674,4.853102 -1.01852,3.170882 -0.96495,7.487256 0.6649,10.363532 2.3506,1.216493 0.96551,7.109527 -1.21497,1.479205 -1.22744,-4.826276 -0.24202,-10.159447 -0.66695,-15.165201 -0.006,-0.510204 -0.0131,-1.020449 -0.0197,-1.53065 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4497" d="m 271.94045,46.353851 c -0.40348,-0.811557 -0.25216,0.437196 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4499" d="m 274.09174,50.132451 c -1.91606,-4.078057 -2.80581,-4.047832 0.0388,0.0092 0.0907,-0.01445 0.13263,-0.338371 -0.0388,-0.0092 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4501" d="m 274.41151,50.968077 c -0.0923,-1.57739 -0.32256,-0.233353 0.0413,-0.03175 0.11285,-0.01216 0.059,-0.310979 -0.0413,0.03175 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4503" d="m 273.04079,50.869299 c 2.83664,0.37524 0.92403,-0.363183 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4505" d="m 272.39711,56.125425 c -0.17372,-1.537924 0.0137,-4.233035 0.527,-5.212515 -1.00502,1.338238 -0.60789,4.178894 -0.527,5.212515 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4507" d="m 273.61325,61.251818 c -1.28364,-1.15951 -0.82157,-3.893623 -1.33451,-5.02731 0.21165,1.054965 0.15227,5.044912 1.33451,5.02731 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4509" d="m 274.61264,61.27541 c -3.82914,-1.475481 0.14086,-0.276199 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4511" d="m 274.57118,65.427115 c 0.28345,-4.44125 -0.23915,-4.664599 -0.005,0.01206 0.093,0.03487 0.22561,-0.288245 0.005,-0.01206 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4513" d="m 274.55742,65.752407 c 0.17405,-0.97303 0.0338,0.184359 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4515" d="m 272.30368,62.875262 c 2.98062,4.062654 1.99316,1.928124 0.0336,-0.0988 l -0.0344,0.04919 7e-4,0.0497 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4517" d="m 271.81813,61.464486 c 0.34264,1.834945 0.69,1.233375 0.0566,-0.10302 l -0.0428,0.05274 -0.0138,0.05022 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4519" d="m 271.72746,46.048011 c -0.11154,4.927873 -0.0582,10.739034 0.20907,15.317272 -0.11214,-5.043955 -0.0533,-10.496787 -0.26596,-15.299007 -0.11732,0.0013 -0.023,0.288875 0.0568,-0.01875 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#131315;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4521" d="m 276.6888,57.220828 c -0.0398,1.2057 0.57667,3.445227 0.81677,4.089518 -1.87349,-0.141113 -5.04029,0.994447 -4.81502,-2.070981 -1.35219,-3.401998 2.00712,-1.529814 3.99825,-2.018527 z m -3.67524,-6.285244 c 2.16609,-0.450198 5.6805,-0.390385 3.01849,1.768521 -1.61972,-0.241485 -5.15812,0.989711 -3.01849,-1.768521 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4523" d="m 277.72925,61.246894 c -0.99685,-0.946294 -0.59615,-3.121949 -1.09308,-3.983854 0.21333,0.720539 0.16828,4.143839 1.09308,3.983854 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4525" d="m 273.51866,61.396066 c 1.68892,0.07646 6.38769,-0.126886 2.16894,-0.143508 -0.54943,0.138105 -1.82252,-0.257906 -2.16894,0.143508 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4527" d="m 272.36029,57.279253 c 0.12485,1.011037 0.3764,4.007681 1.17557,3.954845 -0.98185,-0.961933 -0.70716,-3.161215 -1.17557,-3.954845 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4529" d="m 276.72703,57.145019 c -5.46797,-0.203702 -4.96619,0.499608 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4531" d="m 277.10945,50.739304 c -5.36894,-0.01862 -4.8755,0.54382 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4533" d="m 276.6818,52.654892 c 0.18846,-1.304039 0.5321,-2.797799 -0.0548,-0.656364 0.13427,0.05632 -0.33557,1.033309 0.0548,0.656364 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4535" d="m 272.36722,52.782422 c 5.42568,0.176496 4.91123,-0.43454 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4537" d="m 273.04079,50.869299 c -1.04158,1.382797 -0.67251,2.429078 -0.14567,0.165447 0.0685,-0.04318 0.18336,0.01232 0.14567,-0.165447 z"></path>
          </g>
          <path d="m 258.99235,121.14407 c -0.90473,0.28889 -1.21179,0.7598 -0.32489,0.17163 0.17065,0.004 0.27478,-0.093 0.32489,-0.17163 z" id="path4337" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
          <path d="m 258.91907,121.19641 c -0.88361,0.26794 -1.01149,0.64704 -0.16209,0.0651 0.0734,0.003 0.19212,-0.0226 0.16209,-0.0651 z" id="path4427" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
          <path d="m 258.97701,121.19864 c -0.34997,0.0366 0.0624,0.10236 0,0 z" id="path4429" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
          <g id="g6924">
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4333" d="m 257.52889,124.16372 c 0.1225,0.44707 0.36944,-0.43467 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4335" d="m 258.02308,121.74592 c -0.63921,0.51788 -0.59341,3.04361 -0.29842,1.89564 -0.12419,-0.60526 0.27847,-1.60716 0.43385,-2.00544 l -0.081,0.0561 -0.0544,0.0537 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4415" d="m 258.1447,121.65488 c -0.547,0.53335 -0.68442,2.04327 -0.48266,2.22681 -0.10352,-0.68512 0.20268,-1.90544 0.48266,-2.22681 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4423" d="m 257.60215,124.11139 c 0.0389,0.35175 0.16589,-0.1546 0,0 z"></path>
            <path inkscape:connector-curvature="0" id="path5553" d="m 105.06086,108.47073 0,0 152.07189,15.15065 -151.35794,13.95454 0,0" style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
          </g>
        </g>
      </g>
      <path style="fill:none;stroke:#000000;stroke-width:0.47154939px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 109.86705,120.83047 -4.64193,3.05671 4.8334,2.79091 0,-0.1329" id="path6069" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc"></path>
      <path style="fill:none;stroke:#000000;stroke-width:0.73063982px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 105.86174,123.88718 150.31908,-0.3987 0,0" id="path6073" inkscape:connector-curvature="0"></path>
      <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 105.06086,108.33783 0.71395,29.50389 -0.23799,-0.3987" id="path6246" inkscape:connector-curvature="0"></path>
    </g>
  </g>
  <g id="g7328-9" transform="matrix(-0.99950906,-0.03133135,0.03133135,-0.99950906,303.11287,206.56979)">
    <g id="g7201-4">
      <g id="g7053-6">
        <g id="g6931-1">
          <g id="g6358-5" transform="translate(23.342215,65.967128)">
            <path inkscape:connector-curvature="0" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4295-9" d="m 271.67361,46.110385 c 1.74952,2.007166 2.10696,6.014501 5.51546,4.709885 1.16695,3.182178 1.53914,7.307146 0.48674,10.487931 -3.6132,-1.01979 -3.27119,1.705277 -3.07926,4.451984 -2.25934,1.148205 -5.59512,-0.02899 -8.18128,0.384932 -5.85374,-0.300649 -11.96295,0.52057 -17.67506,-0.416469 -3.21023,-3.437078 -8.51834,-0.666965 -12.58445,-1.778858 -2.50691,-3.854542 -2.7317,-9.474762 -0.95404,-13.694169 2.26846,-1.415075 5.65453,-0.174997 8.26916,-0.777666 2.94458,1.16751 0.46018,-3.194154 3.0898,-2.720308 8.26116,-0.243085 16.6399,-0.893754 24.83558,-0.916553 0.11801,0.06012 0.19367,0.172511 0.27731,0.26962 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4297-1" d="m 272.03858,46.218154 c -0.58965,-0.911289 -0.47561,1.149751 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4299-3" d="m 273.99359,50.268156 c -0.95041,-4.375514 -3.39095,-4.149199 0.0645,-0.03682 0.20683,-0.126965 0.48388,-0.840465 -0.0645,0.03682 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4301-1" d="m 274.6042,50.688183 c -0.34374,-2.558875 -0.75888,1.553139 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4303-8" d="m 276.92417,51.001124 c -2.11254,-1.430731 -2.89236,1.237281 0.30366,-0.361062 l -0.005,-0.02304 -0.299,0.384071 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4305-7" d="m 277.25726,50.60289 c -0.72156,0.642399 -0.10291,0.418273 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4307-5" d="m 278.32588,55.830609 c -0.13621,-1.019487 -0.17983,-5.776088 -1.29202,-4.804478 1.03204,1.308354 0.59729,4.190835 1.14274,5.047425 l 0.11515,-0.142783 0.0342,-0.100293 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4309-6" d="m 277.82738,61.111218 c 0.14499,0.582702 0.95866,-3.999989 0.49853,-5.280638 -0.45992,1.238028 -0.77555,5.676112 -0.49849,5.280659 -0.0709,0.105294 -0.4664,0.550206 -4e-5,-2.1e-5 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4311-2" d="m 274.70118,61.128715 c 2.51337,1.407336 4.3731,-1.03153 -0.31111,0.379097 0.94203,-1.277151 -0.69321,0.894515 0.31111,-0.379097 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4313-4" d="m 274.47307,65.562791 c 0.90759,-4.56338 -0.51314,-5.00645 0.0123,0.005 0.21508,-0.127115 0.57162,-0.876713 -0.0123,-0.005 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4315-1" d="m 274.76436,65.50651 c 0.46668,-1.427731 -1.15694,2.150671 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4317-1" d="m 273.96802,66.362147 c 1.08142,-0.840964 0.75082,-0.6846 0.0927,-0.208528 -0.029,0.03893 -0.13114,0.159406 -0.0927,0.208528 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4319-3" d="m 273.75475,66.366022 c 1.03364,-0.124564 0.19007,-0.865422 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4321-1" d="m 249.64482,66.291494 c 8.03664,0.02483 16.07328,0.04965 24.10993,0.07458 -1.82922,-0.93847 -6.95746,-0.155722 -10.05915,-0.430931 -4.61544,0.251525 -9.77667,-0.560127 -14.05077,0.3564 0.70834,-0.823932 0.0247,-0.208816 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4323-0" d="m 248.58537,65.93339 c 2.18373,1.332522 0.86764,-1.233341 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4325-3" d="m 246.81887,63.862179 c 4.20012,4.730897 0.0588,-0.351148 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4327-4" d="m 236.92283,63.9203 c 1.66591,0.911457 6.66205,0.09468 9.61265,0.339436 -1.66591,-0.911428 -6.66205,-0.09468 -9.61265,-0.339436 -0.21169,0.138135 -0.56175,0.888153 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4341-8" d="m 245.31958,49.211601 c -2.52931,0.278749 -8.60374,-0.107074 -8.88605,0.741908 2.72809,-0.282381 8.02544,0.0479 8.87251,-0.69175 0.0362,0.01262 -0.0164,-0.0969 0.0136,-0.05002 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4343-7" d="m 245.37855,47.334555 c -0.50962,5.19512 -0.1468,-0.573862 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4345-0" d="m 246.1388,46.583799 c -1.27748,0.353996 -0.96736,1.44032 -0.79393,0.575067 0.22772,-0.193609 0.7372,-0.151783 0.79393,-0.575067 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4347-9" d="m 270.51432,45.943618 c -1.74142,-0.818514 -6.94543,0.161759 -10.02347,0.0375 -4.784,0.200848 -9.56803,0.401818 -14.35205,0.602676 1.79397,0.796774 6.94566,-0.162764 10.03462,-0.04327 4.81305,-0.429767 10.07577,0.03101 14.62012,-0.932795 -0.0346,-0.229724 0.93869,0.0711 -0.27922,0.33591 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4349-5" d="m 270.60408,45.931213 c -0.005,-0.184068 0.32655,-0.323621 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4351-1" d="m 271.8256,45.912294 c -0.85048,-0.879522 -1.51051,-0.0042 -0.30604,0.401169 0.12904,-0.10772 0.25099,-0.239071 0.30604,-0.401169 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#eae9eb;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path4353-6" d="m 245.00471,62.524884 c -0.58662,-0.874821 3.39405,0.5128 4.57394,-0.08415 7.12533,-0.224978 14.43211,0.270705 21.45383,-0.369737 0.61244,-5.135754 0.0946,-10.661333 0.0639,-15.895235 -0.86904,-1.381075 1.76909,0.598699 0.59916,1.657961 0.43226,4.940207 -0.57434,10.214118 0.6642,14.974051 0.66804,0.477898 2.9702,3.961938 1.74309,2.934914 -1.30477,-2.039864 -2.77874,-3.971916 -5.52665,-3.083062 -7.79304,-0.107448 -15.77925,0.360186 -23.46366,-0.05355 l -0.10775,-0.08115 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4355-1" d="m 244.87608,61.859351 c 0.10524,0.983406 0.046,0.299483 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4357-1" d="m 245.60185,62.41124 c -1.41536,-1.11486 -0.68686,0.295141 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4359-7" d="m 270.37544,62.244526 c -8.26059,0.14209 -16.71257,-0.05984 -24.8547,0.295314 8.23643,-0.145222 16.84388,0.08053 24.8547,-0.295314 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4361-6" d="m 271.24901,61.286846 c 0.0783,0.960373 -1.63248,1.439418 -0.10689,0.723473 0.13111,-0.065 0.37698,-1.196782 0.10689,-0.723473 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4363-9" d="m 271.1367,46.678303 c 0.11886,4.746014 -0.0843,10.188116 0.23071,14.50933 -0.0968,-4.672693 0.044,-10.598439 -0.23071,-14.50933 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4365-0" d="m 270.70454,45.669718 c 0.61982,1.79168 0.72299,0.34869 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4367-3" d="m 270.73132,45.793424 c -0.13893,-0.03045 0.13324,-0.128183 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4369-8" d="m 271.73211,46.071039 c -1.39293,-1.110972 -0.91639,-0.006 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4371-1" d="m 271.81813,61.464486 c 0.13576,-4.911185 0.0521,-10.687841 -0.19946,-15.306284 0.0625,5.028873 0.14221,10.603359 0.19946,15.306284 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4373-6" d="m 272.40784,62.742073 c -0.73073,-2.428695 -0.867,-0.63039 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4375-1" d="m 274.67582,65.653185 c -2.87854,-3.904562 -2.12033,-2.227703 -0.0795,0.107427 0.0583,0.02076 0.0755,-0.192247 0.0795,-0.107427 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4377-1" d="m 274.06538,66.176815 c 1.2463,-0.67047 0.28181,-0.338504 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4379-4" d="m 273.96958,65.637464 c 0.15238,1.070635 0.3618,-0.204056 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4381-6" d="m 271.63101,62.760723 c 0.92779,1.330271 3.67408,4.271671 1.13839,1.144507 -0.26003,-0.101482 -1.13255,-1.719972 -1.13839,-1.144507 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4383-8" d="m 270.83531,62.722308 c 1.17342,0.315515 0.64621,-0.392821 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4385-8" d="m 246.11292,62.71288 c 7.84982,0.164224 16.7496,0.139663 24.79747,-0.121688 -8.18749,0.04416 -16.96326,0.07088 -24.79747,0.121688 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4387-3" d="m 244.93878,62.582275 c 1.75794,0.816434 1.11682,-0.104309 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4389-9" d="m 276.61139,56.104578 c 0.18096,-1.531209 -0.56215,-4.253223 0.62086,-5.252025 1.05871,3.194071 1.56233,7.366868 0.41086,10.449389 -0.98467,-1.426819 -0.78685,-3.516716 -1.03172,-5.197364 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4391-9" d="m 277.1531,50.73611 c -1.04509,1.339425 -0.60528,4.108809 -0.47582,5.311177 0.0382,-1.613045 -0.35083,-3.964455 0.47582,-5.311177 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4393-6" d="m 278.23984,55.971269 c 0.0575,-1.199315 -0.53371,-5.099257 -1.00869,-5.013061 0.73113,1.488079 0.7138,3.903969 1.00869,5.013061 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4395-2" d="m 277.63717,61.385107 c 1.05106,-1.353929 0.6036,-4.105678 0.4843,-5.314686 -0.0574,1.624692 0.35885,3.936513 -0.4843,5.314686 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4397-9" d="m 276.55894,56.14639 c 0.1003,1.313864 0.25988,4.798018 1.0835,5.071377 -0.8756,-1.401827 -0.77261,-3.998168 -1.0835,-5.071377 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#3b3740;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4399-1" d="m 276.60628,52.701304 c 0.46931,3.441945 0.12392,5.612384 -3.93721,4.537493 -1.09179,-2.289455 -0.52458,-5.994238 3.16838,-4.533674 l 0.57426,-0.0025 0.19459,-0.0018 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4401-6" d="m 276.67734,56.047197 c 0.0286,-3.887867 -0.29747,-3.443991 -0.0932,0.123608 0.0285,-0.03462 0.0869,-0.06328 0.0932,-0.123608 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4403-9" d="m 276.65058,57.296659 c 0.49699,-8.733203 -0.16334,0.367443 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4405-8" d="m 272.36029,57.279253 c 4.85759,0.258806 4.60156,-0.426613 10e-6,-5e-5 0.20873,-0.356419 -0.0514,0.112199 -10e-6,5e-5 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4407-6" d="m 272.2787,56.224638 c -0.0177,2.098789 0.45783,0.134814 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4409-0" d="m 272.43022,52.646322 c -0.46428,4.025973 0.14464,3.413123 -0.063,0.136099 0.26,-0.371087 -0.23707,0.185553 0.063,-0.136099 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4411-3" d="m 276.6818,52.654892 c -4.83087,-0.212013 -4.55755,0.384688 2.2e-4,-4.39e-4 -0.23815,0.320219 0.005,-0.06227 -2.2e-4,4.39e-4 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#8d8b8e;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4413-7" d="m 234.14188,57.073208 c 0.13748,-2.320298 -0.78126,-7.20642 2.98762,-6.207344 2.8929,0.631118 9.36598,-2.311491 7.91842,2.652316 1.50998,5.263471 -3.52022,3.782523 -7.00443,3.895888 -1.10772,-0.256646 -3.34965,0.484149 -3.90161,-0.34086 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4417-8" d="m 245.1837,50.606331 c -3.39524,0.102765 -7.09212,0.01431 -10.39817,0.386912 3.28814,-0.156297 7.86887,-0.06932 10.39817,-0.386912 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4419-7" d="m 244.89633,57.501802 c 0.3507,-2.122298 0.26189,-10.301459 0.0991,-3.941819 -0.0533,1.004234 -0.0799,3.686343 -0.0991,3.941819 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4421-0" d="m 234.10088,57.464765 c 3.58851,-0.03879 7.39693,0.194873 10.87635,-0.09115 -3.45043,0.06524 -8.17272,-0.161426 -10.87635,0.09115 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4425-7" d="m 234.83339,50.928355 c 1.28511,-2.645561 5.20588,-0.584773 7.48977,-1.403923 6.41367,0.09837 -0.59446,1.969945 -3.5064,1.295542 -1.32779,0.03602 -2.65559,0.07223 -3.98337,0.108401 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4431-5" d="m 245.22006,49.36786 c -2.18331,0.08224 -9.45031,0.212707 -8.68862,0.450081 2.76551,-0.173652 6.61474,-0.150274 8.68862,-0.450081 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4433-9" d="m 245.08093,50.719009 c 0.33002,-3.041262 -0.10511,-0.161792 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4435-7" d="m 234.77629,50.947129 c 3.36077,-0.07965 7.10781,0.02108 10.39315,-0.374823 -3.30876,0.147247 -7.73461,0.108923 -10.39315,0.374823 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4437-8" d="m 244.93455,57.425974 c 0.13257,2.304177 -1.09616,5.46372 1.74333,6.624704 -3.49191,-0.25965 -7.26499,0.564762 -10.63082,-0.18006 -1.48813,-1.772595 -1.63097,-4.253798 -1.88045,-6.462805 3.58932,0.006 7.17863,0.01201 10.76794,0.01812 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4439-9" d="m 244.75087,61.906461 c 0.49136,-4.756223 0.005,-4.969725 3e-5,-1e-5 0.0435,0.116687 0.25116,-0.30182 -3e-5,1e-5 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4441-0" d="m 245.47338,62.963999 c -0.91881,-1.951438 -0.976,-0.467088 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4443-5" d="m 246.63965,64.126506 c -2.09553,-2.379045 -1.05852,-0.47765 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4445-3" d="m 236.81866,64.053539 c 2.82018,0.196828 6.82406,0.182791 9.90207,-0.05567 -3.20566,0.03853 -6.93899,0.01124 -9.90207,0.05567 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4451-2" d="m 245.00514,57.391602 c -3.5868,0.0398 -7.40711,-0.199924 -10.8764,0.09115 3.45255,-0.06462 8.16598,0.156455 10.8764,-0.09115 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#bdbbbf;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4453-9" d="m 244.81262,61.910736 c 0.38929,-4.937217 -0.18443,-10.22579 0.70522,-14.983643 8.37757,-0.555143 16.98507,-0.937945 25.34243,-1.052564 0.82566,5.023858 0.19986,10.526087 0.41994,15.713922 -1.35206,1.842061 -4.68196,0.176711 -6.68553,0.765278 -6.4999,-0.187973 -13.26265,0.510683 -19.61357,-0.183564 -0.0716,-0.07695 -0.097,-0.182423 -0.16852,-0.259387 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4455-9" d="m 244.76186,61.896917 c 0.11852,0.211593 0.13674,-0.302924 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4457-2" d="m 245.26942,47.479814 c -0.31516,4.58673 -0.45312,10.030333 -0.40014,14.327484 0.13126,-4.701389 0.29398,-9.965677 0.40014,-14.327484 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4459-9" d="m 246.02504,46.70604 c -0.93653,0.248887 -1.12276,1.247933 -0.33117,0.187623 0.0705,-0.02817 0.45945,-0.0273 0.33117,-0.187623 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4461-4" d="m 270.71413,45.680718 c -8.2096,0.411271 -16.68747,0.509329 -24.75434,1.166988 8.25592,-0.43516 16.44507,-0.501668 24.75434,-1.166988 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4463-3" d="m 271.25014,46.591171 c -0.39612,-1.316651 -0.65105,-0.699348 -0.0614,0.08083 l 0.0415,-0.03234 0.02,-0.04857 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4465-8" d="m 271.24901,61.286846 c 0.16216,-4.677042 0.11302,-10.224763 -0.11231,-14.608543 0.0383,4.831902 0.0744,9.872604 0.11231,14.608543 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4467-2" d="m 270.30395,62.384144 c 1.13521,0.110439 1.2884,-2.108212 0.64811,-0.289208 -0.1227,0.206569 -0.76146,0.05587 -0.64811,0.289208 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4469-5" d="m 245.52074,62.53985 c 8.25565,-0.145931 16.74157,0.08211 24.8547,-0.295314 -8.24153,0.141595 -16.81471,-0.05856 -24.8547,0.295314 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4471-9" d="m 244.75768,61.958553 c 1.29985,1.485394 0.64032,-0.08481 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#8d8b8e;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4473-3" d="m 245.42308,63.034855 c -1.07893,-0.831109 2.76002,0.156981 3.52799,-0.273732 7.56627,0.08317 15.35025,-0.318423 22.79485,0.04629 0.50678,0.940037 4.23739,3.889196 0.98589,3.353341 -7.92727,-0.199654 -15.97304,0.313772 -23.83051,-0.309284 -1.16763,-0.928371 -2.31732,-1.879624 -3.47822,-2.816594 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4475-1" d="m 245.055,62.454018 c 0.27718,1.163176 0.34697,0.0081 -0.0802,0.02341 -0.0382,0.06197 -0.0869,0.28352 0.0802,-0.02341 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4477-0" d="m 246.13598,62.70827 c -1.3865,-0.319619 -1.19959,0.255077 7e-5,0.08491 0.0809,-0.05121 -0.0593,-0.100821 -7e-5,-0.08491 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4479-3" d="m 270.91037,62.591182 c -8.26086,0.125693 -16.7131,-0.09354 -24.85549,0.245718 8.2414,-0.125187 16.81499,0.09616 24.85549,-0.245718 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4481-0" d="m 271.70607,62.629597 c -1.90046,-0.101649 -0.14058,0.466864 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4483-1" d="m 274.06027,65.519842 c -1.17166,-1.699639 -3.7046,-4.221715 -0.98612,-0.982798 0.21574,-0.04309 0.86756,1.499058 0.98612,0.982798 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4485-9" d="m 274.06616,66.226442 c 0.19577,-1.528509 -0.15815,0.159321 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4487-9" d="m 273.85286,66.230306 c 0.75945,-0.02814 -0.0896,-0.328423 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4489-9" d="m 249.74899,66.158294 c 8.03793,-0.06206 16.26534,0.220612 24.185,-0.05662 -7.95978,0.06036 -16.70768,-0.21915 -24.185,0.05662 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4491-6" d="m 248.68953,65.800211 c 1.44219,0.812477 0.93054,-0.146649 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4493-2" d="m 245.47338,62.963999 c 3.0457,3.183514 3.99879,2.896388 -0.0365,0.02028 -0.11063,0.02723 -0.0845,0.300371 0.0365,-0.02028 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#6a676c;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4495-9" d="m 271.67361,46.110385 c 0.40127,1.488525 4.7347,5.211331 1.23674,4.853102 -1.01852,3.170882 -0.96495,7.487256 0.6649,10.363532 2.3506,1.216493 0.96551,7.109527 -1.21497,1.479205 -1.22744,-4.826276 -0.24202,-10.159447 -0.66695,-15.165201 -0.006,-0.510204 -0.0131,-1.020449 -0.0197,-1.53065 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4497-3" d="m 271.94045,46.353851 c -0.40348,-0.811557 -0.25216,0.437196 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4499-1" d="m 274.09174,50.132451 c -1.91606,-4.078057 -2.80581,-4.047832 0.0388,0.0092 0.0907,-0.01445 0.13263,-0.338371 -0.0388,-0.0092 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4501-6" d="m 274.41151,50.968077 c -0.0923,-1.57739 -0.32256,-0.233353 0.0413,-0.03175 0.11285,-0.01216 0.059,-0.310979 -0.0413,0.03175 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4503-1" d="m 273.04079,50.869299 c 2.83664,0.37524 0.92403,-0.363183 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4505-3" d="m 272.39711,56.125425 c -0.17372,-1.537924 0.0137,-4.233035 0.527,-5.212515 -1.00502,1.338238 -0.60789,4.178894 -0.527,5.212515 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4507-7" d="m 273.61325,61.251818 c -1.28364,-1.15951 -0.82157,-3.893623 -1.33451,-5.02731 0.21165,1.054965 0.15227,5.044912 1.33451,5.02731 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4509-6" d="m 274.61264,61.27541 c -3.82914,-1.475481 0.14086,-0.276199 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4511-6" d="m 274.57118,65.427115 c 0.28345,-4.44125 -0.23915,-4.664599 -0.005,0.01206 0.093,0.03487 0.22561,-0.288245 0.005,-0.01206 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4513-1" d="m 274.55742,65.752407 c 0.17405,-0.97303 0.0338,0.184359 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4515-7" d="m 272.30368,62.875262 c 2.98062,4.062654 1.99316,1.928124 0.0336,-0.0988 l -0.0344,0.04919 7e-4,0.0497 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4517-7" d="m 271.81813,61.464486 c 0.34264,1.834945 0.69,1.233375 0.0566,-0.10302 l -0.0428,0.05274 -0.0138,0.05022 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4519-3" d="m 271.72746,46.048011 c -0.11154,4.927873 -0.0582,10.739034 0.20907,15.317272 -0.11214,-5.043955 -0.0533,-10.496787 -0.26596,-15.299007 -0.11732,0.0013 -0.023,0.288875 0.0568,-0.01875 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#131315;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4521-6" d="m 276.6888,57.220828 c -0.0398,1.2057 0.57667,3.445227 0.81677,4.089518 -1.87349,-0.141113 -5.04029,0.994447 -4.81502,-2.070981 -1.35219,-3.401998 2.00712,-1.529814 3.99825,-2.018527 z m -3.67524,-6.285244 c 2.16609,-0.450198 5.6805,-0.390385 3.01849,1.768521 -1.61972,-0.241485 -5.15812,0.989711 -3.01849,-1.768521 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4523-4" d="m 277.72925,61.246894 c -0.99685,-0.946294 -0.59615,-3.121949 -1.09308,-3.983854 0.21333,0.720539 0.16828,4.143839 1.09308,3.983854 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4525-6" d="m 273.51866,61.396066 c 1.68892,0.07646 6.38769,-0.126886 2.16894,-0.143508 -0.54943,0.138105 -1.82252,-0.257906 -2.16894,0.143508 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4527-6" d="m 272.36029,57.279253 c 0.12485,1.011037 0.3764,4.007681 1.17557,3.954845 -0.98185,-0.961933 -0.70716,-3.161215 -1.17557,-3.954845 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4529-6" d="m 276.72703,57.145019 c -5.46797,-0.203702 -4.96619,0.499608 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4531-1" d="m 277.10945,50.739304 c -5.36894,-0.01862 -4.8755,0.54382 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4533-5" d="m 276.6818,52.654892 c 0.18846,-1.304039 0.5321,-2.797799 -0.0548,-0.656364 0.13427,0.05632 -0.33557,1.033309 0.0548,0.656364 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4535-2" d="m 272.36722,52.782422 c 5.42568,0.176496 4.91123,-0.43454 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4537-4" d="m 273.04079,50.869299 c -1.04158,1.382797 -0.67251,2.429078 -0.14567,0.165447 0.0685,-0.04318 0.18336,0.01232 0.14567,-0.165447 z"></path>
          </g>
          <path d="m 258.99235,121.14407 c -0.90473,0.28889 -1.21179,0.7598 -0.32489,0.17163 0.17065,0.004 0.27478,-0.093 0.32489,-0.17163 z" id="path4337-6" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
          <path d="m 258.91907,121.19641 c -0.88361,0.26794 -1.01149,0.64704 -0.16209,0.0651 0.0734,0.003 0.19212,-0.0226 0.16209,-0.0651 z" id="path4427-5" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
          <path d="m 258.97701,121.19864 c -0.34997,0.0366 0.0624,0.10236 0,0 z" id="path4429-6" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0"></path>
          <g id="g6924-9">
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4333-6" d="m 257.52889,124.16372 c 0.1225,0.44707 0.36944,-0.43467 0,0 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4335-6" d="m 258.02308,121.74592 c -0.63921,0.51788 -0.59341,3.04361 -0.29842,1.89564 -0.12419,-0.60526 0.27847,-1.60716 0.43385,-2.00544 l -0.081,0.0561 -0.0544,0.0537 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4415-0" d="m 258.1447,121.65488 c -0.547,0.53335 -0.68442,2.04327 -0.48266,2.22681 -0.10352,-0.68512 0.20268,-1.90544 0.48266,-2.22681 z"></path>
            <path inkscape:connector-curvature="0" style="fill:#1f1a17;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path4423-4" d="m 257.60215,124.11139 c 0.0389,0.35175 0.16589,-0.1546 0,0 z"></path>
            <path inkscape:connector-curvature="0" id="path5553-8" d="m 105.06086,108.47073 0,0 152.07189,15.15065 -151.35794,13.95454 0,0" style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
          </g>
        </g>
      </g>
      <path style="fill:none;stroke:#000000;stroke-width:0.47154939px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 109.86705,120.83047 -4.64193,3.05671 4.8334,2.79091 0,-0.1329" id="path6069-9" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc"></path>
      <path style="fill:none;stroke:#000000;stroke-width:0.73063982px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 105.86174,123.88718 150.31908,-0.3987 0,0" id="path6073-7" inkscape:connector-curvature="0"></path>
      <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 105.06086,108.33783 0.71395,29.50389 -0.23799,-0.3987" id="path6246-1" inkscape:connector-curvature="0"></path>
    </g>
  </g>
  <path d="M 100.21411,44.722781 C 100.19848,9.9792347 100.19838,9.7506647 100.19838,9.7506647" id="path8076-7" style="fill:none;stroke:#000000;stroke-width:0.71449226;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.71449225, 0.71449225;stroke-dashoffset:0.21434769" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 119.68046,19.629724 -39.26739,0.01766 0,0" id="path6230-2" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 116.34939,21.226033 3.09309,-1.596202 -2.8566,-1.726415 -0.23786,0.265907 0,0" id="path6232-6" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 84.459576,21.373274 -3.570536,-1.726105 3.092953,-1.861991 0.23799,-1.07e-4" id="path6234-7" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 80.889936,21.640679 -0.239832,-4.119802 0.23798,-1.07e-4" id="path6236-2" inkscape:connector-curvature="0"></path>
  <path style="fill:none;stroke:#000000;stroke-width:0.52570754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 120.15714,21.22432 -0.002,-3.58831 0,0" id="path6238-9" inkscape:connector-curvature="0"></path>
  <g id="g8251" transform="matrix(1.4153808,0,0,1,-41.704074,0)">
    <path inkscape:connector-curvature="0" id="path6240-3" d="m 100.39961,10.468274 71.52392,-0.297965 0,0" style="fill:none;stroke:#000000;stroke-width:0.52014804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
    <path sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" id="path6242-6" d="m 169.36179,12.430761 2.5618,-2.127552 -2.79663,-1.9922527 6e-5,0.1329099" style="fill:none;stroke:#000000;stroke-width:0.52014804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
    <path inkscape:connector-curvature="0" id="path6244-5" d="m 172.62353,12.562204 -0.002,-4.5186193 0,0" style="fill:none;stroke:#000000;stroke-width:0.52014804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"></path>
  </g>
</svg></td>
</tr>
<tr>
<td align="center">
        (
      1)
    </td>
<td align="center">
        (
      2)
    </td>
</tr>
</table>
<div style="margin-bottom:30px;text-align:center;" class="caption">
The parameters <i><span data-if="hdevelop" style="display:inline">'surface_tolerance'</span><span data-if="c" style="display:none">"surface_tolerance"</span><span data-if="cpp" style="display:none">"surface_tolerance"</span><span data-if="com" style="display:none">"surface_tolerance"</span><span data-if="dotnet" style="display:none">"surface_tolerance"</span><span data-if="python" style="display:none">"surface_tolerance"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'min_thickness'</span><span data-if="c" style="display:none">"min_thickness"</span><span data-if="cpp" style="display:none">"min_thickness"</span><span data-if="com" style="display:none">"min_thickness"</span><span data-if="dotnet" style="display:none">"min_thickness"</span><span data-if="python" style="display:none">"min_thickness"</span></i> regulate the fidelity to the initial
surface obtained by pairwise reconstruction.
Points in a cone of sight of a camera are considered surely
outside of the object (in front of the surface) or surely inside the
object (behind the surface) with respect to the given camera if their
distance to the initial surface exceeds <i><span data-if="hdevelop" style="display:inline">'surface_tolerance'</span><span data-if="c" style="display:none">"surface_tolerance"</span><span data-if="cpp" style="display:none">"surface_tolerance"</span><span data-if="com" style="display:none">"surface_tolerance"</span><span data-if="dotnet" style="display:none">"surface_tolerance"</span><span data-if="python" style="display:none">"surface_tolerance"</span></i>.
Points behind the surface
(viewed from the given camera) are only considered to lie inside the
object if their distance to the initial surface does not exceed
<i><span data-if="hdevelop" style="display:inline">'min_thickness'</span><span data-if="c" style="display:none">"min_thickness"</span><span data-if="cpp" style="display:none">"min_thickness"</span><span data-if="com" style="display:none">"min_thickness"</span><span data-if="dotnet" style="display:none">"min_thickness"</span><span data-if="python" style="display:none">"min_thickness"</span></i>.
</div>
</div>

<p>Each 3D point of the object model returned in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> is
extracted from the isosurface where the distance function equals zero.
Its normal vector is calculated from the gradient of the distance function.
While the method <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> requires the setting of more
parameters than simple pairwise reconstruction, post-processing of the
obtained point cloud representing the object surface will probably get a
lot simpler. In particular, suppression of outliers, smoothing, equidistant
sub-sampling and hole filling can be handled nicely and often in high quality
by this method. The same can be said about the possible internal meshing of
the output surface, see the next paragraph.
Note that the algorithm will try to produce a closed surface. If the object
is only observed and reconstructed from one side, the far end of the
bounding box usually determines where the object is cut off.
The method <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> may take considerably longer than
simple pairwise reconstruction, depending mainly on the parameter
<i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i>.
</p>
<p>Additionally, the so-obtained point cloud can be
meshed in a post-processing step. The object model returned in
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> then contains the description of the mesh.
For a stereo model of type <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i>, the algorithm
'marching tetrahedra' is used which can be activated by setting the parameter
<i><span data-if="hdevelop" style="display:inline">'point_meshing'</span><span data-if="c" style="display:none">"point_meshing"</span><span data-if="cpp" style="display:none">"point_meshing"</span><span data-if="com" style="display:none">"point_meshing"</span><span data-if="dotnet" style="display:none">"point_meshing"</span><span data-if="python" style="display:none">"point_meshing"</span></i> to <i><span data-if="hdevelop" style="display:inline">'isosurface'</span><span data-if="c" style="display:none">"isosurface"</span><span data-if="cpp" style="display:none">"isosurface"</span><span data-if="com" style="display:none">"isosurface"</span><span data-if="dotnet" style="display:none">"isosurface"</span><span data-if="python" style="display:none">"isosurface"</span></i>. The wanted meshed surface
is extracted as the isosurface where the distance function equals zero. Note
that there are more points in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> if meshing of the
isosurface is enabled even if the used <i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i> is the same.
</p>
</dd>
</dl>
<h3>Coloring the 3D object model</h3>
<p>
It is possible to provide color information for 3D object models that have
been reconstructed with <code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> from the input
images.
The computation of the color depends on the chosen
method set with <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> (see explanation in the list
there).
Each 3D point is assigned a color value consisting of a red, green
and blue channel which are stored as attributes named <i><span data-if="hdevelop" style="display:inline">'red'</span><span data-if="c" style="display:none">"red"</span><span data-if="cpp" style="display:none">"red"</span><span data-if="com" style="display:none">"red"</span><span data-if="dotnet" style="display:none">"red"</span><span data-if="python" style="display:none">"red"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'green'</span><span data-if="c" style="display:none">"green"</span><span data-if="cpp" style="display:none">"green"</span><span data-if="com" style="display:none">"green"</span><span data-if="dotnet" style="display:none">"green"</span><span data-if="python" style="display:none">"green"</span></i> and <i><span data-if="hdevelop" style="display:inline">'blue'</span><span data-if="c" style="display:none">"blue"</span><span data-if="cpp" style="display:none">"blue"</span><span data-if="com" style="display:none">"blue"</span><span data-if="dotnet" style="display:none">"blue"</span><span data-if="python" style="display:none">"blue"</span></i> in the output 3D object model
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>. These attributes can for example be used
in the procedure <code>visualize_object_model_3d</code> with
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code> = <i><span data-if="hdevelop" style="display:inline">'red_channel_attrib'</span><span data-if="c" style="display:none">"red_channel_attrib"</span><span data-if="cpp" style="display:none">"red_channel_attrib"</span><span data-if="com" style="display:none">"red_channel_attrib"</span><span data-if="dotnet" style="display:none">"red_channel_attrib"</span><span data-if="python" style="display:none">"red_channel_attrib"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'green_channel_attrib'</span><span data-if="c" style="display:none">"green_channel_attrib"</span><span data-if="cpp" style="display:none">"green_channel_attrib"</span><span data-if="com" style="display:none">"green_channel_attrib"</span><span data-if="dotnet" style="display:none">"green_channel_attrib"</span><span data-if="python" style="display:none">"green_channel_attrib"</span></i> and <i><span data-if="hdevelop" style="display:inline">'blue_channel_attrib'</span><span data-if="c" style="display:none">"blue_channel_attrib"</span><span data-if="cpp" style="display:none">"blue_channel_attrib"</span><span data-if="com" style="display:none">"blue_channel_attrib"</span><span data-if="dotnet" style="display:none">"blue_channel_attrib"</span><span data-if="python" style="display:none">"blue_channel_attrib"</span></i>.
They can also be queried with
<a href="get_object_model_3d_params.html"><code><span data-if="hdevelop" style="display:inline">get_object_model_3d_params</span><span data-if="c" style="display:none">get_object_model_3d_params</span><span data-if="cpp" style="display:none">GetObjectModel3dParams</span><span data-if="com" style="display:none">GetObjectModel3dParams</span><span data-if="dotnet" style="display:none">GetObjectModel3dParams</span><span data-if="python" style="display:none">get_object_model_3d_params</span></code></a> or be processed with
<a href="select_points_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">select_points_object_model_3d</span><span data-if="c" style="display:none">select_points_object_model_3d</span><span data-if="cpp" style="display:none">SelectPointsObjectModel3d</span><span data-if="com" style="display:none">SelectPointsObjectModel3d</span><span data-if="dotnet" style="display:none">SelectPointsObjectModel3d</span><span data-if="python" style="display:none">select_points_object_model_3d</span></code></a> or other operators that use
extended attributes.
If the reconstruction has been performed using gray value images, the color
value for the three channels is identical. If multi-channel images are used,
the reconstruction is performed using the first channel only. The remaining
channels are solely used for the calculation of the color values.
</p>
<p>If stereo models of type <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> are used, the
reconstruction will contain points without a direct correspondence to points
in the images. These points are not seen by any of the cameras of the stereo
system and are therefore "invisible". A color value for these points is
derived by assigning the value of the nearest visible neighbor. Normally,
the nearest neighbor search is not very time-consuming and can remain
active. However, it may happen that the value for the parameter
<i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i> is considerably finer than the available image
resolution.
In this case, many invisible 3D points are reconstructed making the nearest
neighbor search very time consuming. In order to avoid an increased
runtime, it is recommended to either adapt the value of
<i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i> or to switch off the calculation for invisible points.
This can be done by calling <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> with
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'color_invisible'</span><span data-if="c" style="display:none">"color_invisible"</span><span data-if="cpp" style="display:none">"color_invisible"</span><span data-if="com" style="display:none">"color_invisible"</span><span data-if="dotnet" style="display:none">"color_invisible"</span><span data-if="python" style="display:none">"color_invisible"</span></i> and <code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code>=
<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>. In this case, invisible points are assigned 255 as gray
value.
</p>
<h3>Troubleshooting for the configuration of a stereo model</h3>
<p>The proper configuration of a stereo model is not always easy. Please
follow the workflow above. If the reconstruction results are not
satisfactory, please consult the following hints and ideas:
</p>
<dl class="generic">

<dt><b><i>Run in persistence mode</i></b></dt>
<dd>
<p>
 If you enable the
<i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode of stereo model (call
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> with
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i>) a successive call to
<code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> will store intermediate iconic
results, which provide additional information. They can be accessed
by <a href="get_stereo_model_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object_model_3d</span><span data-if="c" style="display:none">get_stereo_model_object_model_3d</span><span data-if="cpp" style="display:none">GetStereoModelObjectModel3d</span><span data-if="com" style="display:none">GetStereoModelObjectModel3d</span><span data-if="dotnet" style="display:none">GetStereoModelObjectModel3d</span><span data-if="python" style="display:none">get_stereo_model_object_model_3d</span></code></a> and
<a href="get_stereo_model_object.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object</span><span data-if="c" style="display:none">get_stereo_model_object</span><span data-if="cpp" style="display:none">GetStereoModelObject</span><span data-if="com" style="display:none">GetStereoModelObject</span><span data-if="dotnet" style="display:none">GetStereoModelObject</span><span data-if="python" style="display:none">get_stereo_model_object</span></code></a>.
</p>
</dd>

<dt><b><i>Check the quality of the calibration</i></b></dt>
<dd>
<p>
 
</p>
<ul>
<li>
<p> If the camera setup was obtained by <a href="calibrate_cameras.html"><code><span data-if="hdevelop" style="display:inline">calibrate_cameras</span><span data-if="c" style="display:none">calibrate_cameras</span><span data-if="cpp" style="display:none">CalibrateCameras</span><span data-if="com" style="display:none">CalibrateCameras</span><span data-if="dotnet" style="display:none">CalibrateCameras</span><span data-if="python" style="display:none">calibrate_cameras</span></code></a>, it
stores some quality information about the camera calibration in form
of standard deviations of the camera internal parameters.  This
information is then carried in the camera setup model associated with
the stereo model. It can be queried by first calling
<a href="get_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_param</span><span data-if="c" style="display:none">get_stereo_model_param</span><span data-if="cpp" style="display:none">GetStereoModelParam</span><span data-if="com" style="display:none">GetStereoModelParam</span><span data-if="dotnet" style="display:none">GetStereoModelParam</span><span data-if="python" style="display:none">get_stereo_model_param</span></code></a> with
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'camera_setup_model'</span><span data-if="c" style="display:none">"camera_setup_model"</span><span data-if="cpp" style="display:none">"camera_setup_model"</span><span data-if="com" style="display:none">"camera_setup_model"</span><span data-if="dotnet" style="display:none">"camera_setup_model"</span><span data-if="python" style="display:none">"camera_setup_model"</span></i> and then
inspecting the camera parameter standard deviations by calling
<a href="get_camera_setup_param.html"><code><span data-if="hdevelop" style="display:inline">get_camera_setup_param</span><span data-if="c" style="display:none">get_camera_setup_param</span><span data-if="cpp" style="display:none">GetCameraSetupParam</span><span data-if="com" style="display:none">GetCameraSetupParam</span><span data-if="dotnet" style="display:none">GetCameraSetupParam</span><span data-if="python" style="display:none">get_camera_setup_param</span></code></a> with
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'params_deviations'</span><span data-if="c" style="display:none">"params_deviations"</span><span data-if="cpp" style="display:none">"params_deviations"</span><span data-if="com" style="display:none">"params_deviations"</span><span data-if="dotnet" style="display:none">"params_deviations"</span><span data-if="python" style="display:none">"params_deviations"</span></i>. Unusually big
standard deviation values might indicate a bad camera
calibration.
</p>
</li>
<li>
<p> After setting the stereo model <i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode, we
recommend inspecting the rectified images for each image pair.
The rectified images are returned by <a href="get_stereo_model_object.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object</span><span data-if="c" style="display:none">get_stereo_model_object</span><span data-if="cpp" style="display:none">GetStereoModelObject</span><span data-if="com" style="display:none">GetStereoModelObject</span><span data-if="dotnet" style="display:none">GetStereoModelObject</span><span data-if="python" style="display:none">get_stereo_model_object</span></code></a>
with a camera index pair <code>[From, To]</code> specifying the pair of
interest in the parameter <code><span data-if="hdevelop" style="display:inline">PairIndex</span><span data-if="c" style="display:none">PairIndex</span><span data-if="cpp" style="display:none">PairIndex</span><span data-if="com" style="display:none">PairIndex</span><span data-if="dotnet" style="display:none">pairIndex</span><span data-if="python" style="display:none">pair_index</span></code> and the values
<i><span data-if="hdevelop" style="display:inline">'from_image_rect'</span><span data-if="c" style="display:none">"from_image_rect"</span><span data-if="cpp" style="display:none">"from_image_rect"</span><span data-if="com" style="display:none">"from_image_rect"</span><span data-if="dotnet" style="display:none">"from_image_rect"</span><span data-if="python" style="display:none">"from_image_rect"</span></i> and <i><span data-if="hdevelop" style="display:inline">'to_image_rect'</span><span data-if="c" style="display:none">"to_image_rect"</span><span data-if="cpp" style="display:none">"to_image_rect"</span><span data-if="com" style="display:none">"to_image_rect"</span><span data-if="dotnet" style="display:none">"to_image_rect"</span><span data-if="python" style="display:none">"to_image_rect"</span></i> in
<code><span data-if="hdevelop" style="display:inline">ObjectName</span><span data-if="c" style="display:none">ObjectName</span><span data-if="cpp" style="display:none">ObjectName</span><span data-if="com" style="display:none">ObjectName</span><span data-if="dotnet" style="display:none">objectName</span><span data-if="python" style="display:none">object_name</span></code>, respectively. If the images are properly
rectified, all corresponding image features must appear in the same
row in both rectified images. A discrepancy of several rows is a
serious indication for a bad camera calibration.
</p>
</li>
</ul>

</dd>

<dt><b><i>Inspect the used bounding box</i></b></dt>
<dd>
<p>

Make sure that the bounding box is tight around the volume of interest.
If the parameters <i><span data-if="hdevelop" style="display:inline">'min_disparity'</span><span data-if="c" style="display:none">"min_disparity"</span><span data-if="cpp" style="display:none">"min_disparity"</span><span data-if="com" style="display:none">"min_disparity"</span><span data-if="dotnet" style="display:none">"min_disparity"</span><span data-if="python" style="display:none">"min_disparity"</span></i> and <i><span data-if="hdevelop" style="display:inline">'max_disparity'</span><span data-if="c" style="display:none">"max_disparity"</span><span data-if="cpp" style="display:none">"max_disparity"</span><span data-if="com" style="display:none">"max_disparity"</span><span data-if="dotnet" style="display:none">"max_disparity"</span><span data-if="python" style="display:none">"max_disparity"</span></i>
are not set manually by using <a href="create_stereo_model.html"><code><span data-if="hdevelop" style="display:inline">create_stereo_model</span><span data-if="c" style="display:none">create_stereo_model</span><span data-if="cpp" style="display:none">CreateStereoModel</span><span data-if="com" style="display:none">CreateStereoModel</span><span data-if="dotnet" style="display:none">CreateStereoModel</span><span data-if="python" style="display:none">create_stereo_model</span></code></a> or
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>, the algorithm uses the
projection of the bounding box into both images of each image pair in
order to estimate the values for <code><span data-if="hdevelop" style="display:inline">MinDisparity</span><span data-if="c" style="display:none">MinDisparity</span><span data-if="cpp" style="display:none">MinDisparity</span><span data-if="com" style="display:none">MinDisparity</span><span data-if="dotnet" style="display:none">minDisparity</span><span data-if="python" style="display:none">min_disparity</span></code> and
<code><span data-if="hdevelop" style="display:inline">MaxDisparity</span><span data-if="c" style="display:none">MaxDisparity</span><span data-if="cpp" style="display:none">MaxDisparity</span><span data-if="com" style="display:none">MaxDisparity</span><span data-if="dotnet" style="display:none">maxDisparity</span><span data-if="python" style="display:none">max_disparity</span></code>, which in turn are used in the internal call to
<a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a> and <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a>. These
values can be queried using <a href="get_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_param</span><span data-if="c" style="display:none">get_stereo_model_param</span><span data-if="cpp" style="display:none">GetStereoModelParam</span><span data-if="com" style="display:none">GetStereoModelParam</span><span data-if="dotnet" style="display:none">GetStereoModelParam</span><span data-if="python" style="display:none">get_stereo_model_param</span></code></a> and if needed,
can be adapted using <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>.
If the disparity values are set manually, the bounding box is only used to
restrict the reconstructed 3D points.
In the case of using <a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> as disparity method,
suitable values for the parameters <code><span data-if="hdevelop" style="display:inline">InitialGuess</span><span data-if="c" style="display:none">InitialGuess</span><span data-if="cpp" style="display:none">InitialGuess</span><span data-if="com" style="display:none">InitialGuess</span><span data-if="dotnet" style="display:none">initialGuess</span><span data-if="python" style="display:none">initial_guess</span></code> and
<i><span data-if="hdevelop" style="display:inline">'initial_level'</span><span data-if="c" style="display:none">"initial_level"</span><span data-if="cpp" style="display:none">"initial_level"</span><span data-if="com" style="display:none">"initial_level"</span><span data-if="dotnet" style="display:none">"initial_level"</span><span data-if="python" style="display:none">"initial_level"</span></i> are derived from the bounding box. However, these
values can also be reset using <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>. Use
the procedures <code>gen_bounding_box_object_model_3d</code> to create a 3D
object model of your stereo model, and inspect it in conjunction with
the reconstructed 3D object model to verify the bounding box visually.
</p>
</dd>

<dt><b><i>Improve the quality of the disparity images</i></b></dt>
<dd>
<p>

After setting the stereo model <i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode (see
above), inspect the disparity and the score images for each image pair.
They are returned by <a href="get_stereo_model_object.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object</span><span data-if="c" style="display:none">get_stereo_model_object</span><span data-if="cpp" style="display:none">GetStereoModelObject</span><span data-if="com" style="display:none">GetStereoModelObject</span><span data-if="dotnet" style="display:none">GetStereoModelObject</span><span data-if="python" style="display:none">get_stereo_model_object</span></code></a> with a camera index
pair <code>[From, To]</code> specifying the pair of interest in the
parameter <code><span data-if="hdevelop" style="display:inline">PairIndex</span><span data-if="c" style="display:none">PairIndex</span><span data-if="cpp" style="display:none">PairIndex</span><span data-if="com" style="display:none">PairIndex</span><span data-if="dotnet" style="display:none">pairIndex</span><span data-if="python" style="display:none">pair_index</span></code> and the values <i><span data-if="hdevelop" style="display:inline">'disparity_image'</span><span data-if="c" style="display:none">"disparity_image"</span><span data-if="cpp" style="display:none">"disparity_image"</span><span data-if="com" style="display:none">"disparity_image"</span><span data-if="dotnet" style="display:none">"disparity_image"</span><span data-if="python" style="display:none">"disparity_image"</span></i>
and <i><span data-if="hdevelop" style="display:inline">'score_image'</span><span data-if="c" style="display:none">"score_image"</span><span data-if="cpp" style="display:none">"score_image"</span><span data-if="com" style="display:none">"score_image"</span><span data-if="dotnet" style="display:none">"score_image"</span><span data-if="python" style="display:none">"score_image"</span></i> in <code><span data-if="hdevelop" style="display:inline">ObjectName</span><span data-if="c" style="display:none">ObjectName</span><span data-if="cpp" style="display:none">ObjectName</span><span data-if="com" style="display:none">ObjectName</span><span data-if="dotnet" style="display:none">objectName</span><span data-if="python" style="display:none">object_name</span></code>, respectively.
If both images exhibit significant imperfection (e.g., the disparity
image does not really resemble the shape of the object seen in the
image), try to adjust the parameters used for the internal call
to <a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a> (the parameters with a
<i><span data-if="hdevelop" style="display:inline">'binocular_'</span><span data-if="c" style="display:none">"binocular_"</span><span data-if="cpp" style="display:none">"binocular_"</span><span data-if="com" style="display:none">"binocular_"</span><span data-if="dotnet" style="display:none">"binocular_"</span><span data-if="python" style="display:none">"binocular_"</span></i> prefix) by modifying <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>
until some improvement is achieved.
</p>
<p>Alternatively, a different method to calculate the disparities can be
used. Besides the above-mentioned internal call of
<a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a>, HALCON also provides the two other methods
<a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> and <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a>.
These methods feature e.g., the calculation of disparities in textureless
regions at an expanse of the reconstruction time if compared with
cross-correlation methods. However, for these methods, it can be
necessary to adapt the parameters to the underlying dataset as well.
Dependent on the chosen method, the user can either set the parameters
with a <i><span data-if="hdevelop" style="display:inline">'binocular_mg_'</span><span data-if="c" style="display:none">"binocular_mg_"</span><span data-if="cpp" style="display:none">"binocular_mg_"</span><span data-if="com" style="display:none">"binocular_mg_"</span><span data-if="dotnet" style="display:none">"binocular_mg_"</span><span data-if="python" style="display:none">"binocular_mg_"</span></i> or a <i><span data-if="hdevelop" style="display:inline">'binocular_ms_'</span><span data-if="c" style="display:none">"binocular_ms_"</span><span data-if="cpp" style="display:none">"binocular_ms_"</span><span data-if="com" style="display:none">"binocular_ms_"</span><span data-if="dotnet" style="display:none">"binocular_ms_"</span><span data-if="python" style="display:none">"binocular_ms_"</span></i> prefix
until some improvement is achieved.</p>
<p>
A detailed description of the provided methods and their parameters
can be found in <a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a>,
<a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> or <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a>,
respectively.
</p>
</dd>

<dt><b><i>Fusion parameters</i></b></dt>
<dd><p>

If the result of pairwise reconstruction as inspected by
<a href="get_stereo_model_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object_model_3d</span><span data-if="c" style="display:none">get_stereo_model_object_model_3d</span><span data-if="cpp" style="display:none">GetStereoModelObjectModel3d</span><span data-if="com" style="display:none">GetStereoModelObjectModel3d</span><span data-if="dotnet" style="display:none">GetStereoModelObjectModel3d</span><span data-if="python" style="display:none">get_stereo_model_object_model_3d</span></code></a> can not be improved anymore,
begin to adapt the fusion parameters. For a description of parameters
see also <a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>.
Note that the pairwise reconstruction is sometimes not discernible
when the
fusion algorithm can still tweak it into something sensible. In any case,
pairwise reconstruction should yield enough points as input for the
fusion algorithm.
</p></dd>
</dl>
<h3>Runtime</h3>
<p>In order to improve the runtime, consider the following hints:
</p>
<dl class="generic">

<dt><b><i>Extent of the bounding box</i></b></dt>
<dd><p>

The bounding box should be tight around the volume of interest. Else,
the runtime will increase unnecessarily and - for the method
<i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i> - drastically.
</p></dd>

<dt><b><i>Reduce the domain of the input images</i></b></dt>
<dd>
<p>

Reducing the domain of the input images (e.g., with <a href="reduce_domain.html"><code><span data-if="hdevelop" style="display:inline">reduce_domain</span><span data-if="c" style="display:none">reduce_domain</span><span data-if="cpp" style="display:none">ReduceDomain</span><span data-if="com" style="display:none">ReduceDomain</span><span data-if="dotnet" style="display:none">ReduceDomain</span><span data-if="python" style="display:none">reduce_domain</span></code></a>)
to the relevant part of the image may heavily speed up the algorithm,
especially for large images.
</p>
</dd>

<dt><b><i>Sub-sampling in the rectification step</i></b></dt>
<dd>
<p>

The stereo model parameter <i><span data-if="hdevelop" style="display:inline">'rectif_sub_sampling'</span><span data-if="c" style="display:none">"rectif_sub_sampling"</span><span data-if="cpp" style="display:none">"rectif_sub_sampling"</span><span data-if="com" style="display:none">"rectif_sub_sampling"</span><span data-if="dotnet" style="display:none">"rectif_sub_sampling"</span><span data-if="python" style="display:none">"rectif_sub_sampling"</span></i> (see
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>) controls the sub-sampling in the
rectification step. Setting this factor to a value &gt; 1.0 will
reduce the resolution of the rectified images compared to the original
images. This factor has a direct impact on the succeeding
performance of the chosen disparity method, but it causes loss
of image detail. The parameter <i><span data-if="hdevelop" style="display:inline">'rectif_interpolation'</span><span data-if="c" style="display:none">"rectif_interpolation"</span><span data-if="cpp" style="display:none">"rectif_interpolation"</span><span data-if="com" style="display:none">"rectif_interpolation"</span><span data-if="dotnet" style="display:none">"rectif_interpolation"</span><span data-if="python" style="display:none">"rectif_interpolation"</span></i> could
have also some impact, but typically not a significant one.
</p>
</dd>

<dt><b><i>Disparity parameters</i></b></dt>
<dd>
<p>

There is a trade-off between completeness of the pairwise surface
reconstruction on the one hand and reconstruction runtime on the other.
The stereo model offers three different methods to calculate the
disparity images. Dependent on the chosen method, the stereo model
provides a particular set of parameters that enables a precise adaption
of the method to the used dataset. If the method <a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a>
is selected, only parameters with a <i><span data-if="hdevelop" style="display:inline">'binocular_'</span><span data-if="c" style="display:none">"binocular_"</span><span data-if="cpp" style="display:none">"binocular_"</span><span data-if="com" style="display:none">"binocular_"</span><span data-if="dotnet" style="display:none">"binocular_"</span><span data-if="python" style="display:none">"binocular_"</span></i> prefix can be
set. For the method <a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a>, all settable parameters
have to exhibit the prefix <i><span data-if="hdevelop" style="display:inline">'binocular_mg_'</span><span data-if="c" style="display:none">"binocular_mg_"</span><span data-if="cpp" style="display:none">"binocular_mg_"</span><span data-if="com" style="display:none">"binocular_mg_"</span><span data-if="dotnet" style="display:none">"binocular_mg_"</span><span data-if="python" style="display:none">"binocular_mg_"</span></i>, whereas for the method
<a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a> only parameters with
<i><span data-if="hdevelop" style="display:inline">'binocular_ms_'</span><span data-if="c" style="display:none">"binocular_ms_"</span><span data-if="cpp" style="display:none">"binocular_ms_"</span><span data-if="com" style="display:none">"binocular_ms_"</span><span data-if="dotnet" style="display:none">"binocular_ms_"</span><span data-if="python" style="display:none">"binocular_ms_"</span></i> are applicable.
</p>
<dl class="generic">

<dt><b>Parameters using the method <a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a>:</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">MaskWidth</span><span data-if="c" style="display:none">MaskWidth</span><span data-if="cpp" style="display:none">MaskWidth</span><span data-if="com" style="display:none">MaskWidth</span><span data-if="dotnet" style="display:none">maskWidth</span><span data-if="python" style="display:none">mask_width</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">MaskHeight</span><span data-if="c" style="display:none">MaskHeight</span><span data-if="cpp" style="display:none">MaskHeight</span><span data-if="com" style="display:none">MaskHeight</span><span data-if="dotnet" style="display:none">maskHeight</span><span data-if="python" style="display:none">mask_height</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">Filter</span><span data-if="c" style="display:none">Filter</span><span data-if="cpp" style="display:none">Filter</span><span data-if="com" style="display:none">Filter</span><span data-if="dotnet" style="display:none">filter</span><span data-if="python" style="display:none">filter</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">SubDisparity</span><span data-if="c" style="display:none">SubDisparity</span><span data-if="cpp" style="display:none">SubDisparity</span><span data-if="com" style="display:none">SubDisparity</span><span data-if="dotnet" style="display:none">subDisparity</span><span data-if="python" style="display:none">sub_disparity</span></code>
</p>
</li>
</ul>
<p>
Each of these parameters of <a href="binocular_disparity.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity</span><span data-if="c" style="display:none">binocular_disparity</span><span data-if="cpp" style="display:none">BinocularDisparity</span><span data-if="com" style="display:none">BinocularDisparity</span><span data-if="dotnet" style="display:none">BinocularDisparity</span><span data-if="python" style="display:none">binocular_disparity</span></code></a> has a
corresponding stereo model parameter written in snake case and with
the prefix <i><span data-if="hdevelop" style="display:inline">'binocular_'</span><span data-if="c" style="display:none">"binocular_"</span><span data-if="cpp" style="display:none">"binocular_"</span><span data-if="com" style="display:none">"binocular_"</span><span data-if="dotnet" style="display:none">"binocular_"</span><span data-if="python" style="display:none">"binocular_"</span></i>, and has, some more or others less,
impact on the performance.
Adapting them properly could improve the performance.
performance.
</p>
</dd>

<dt><b>Parameters using the method <a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a>:</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">GrayConstancy</span><span data-if="c" style="display:none">GrayConstancy</span><span data-if="cpp" style="display:none">GrayConstancy</span><span data-if="com" style="display:none">GrayConstancy</span><span data-if="dotnet" style="display:none">grayConstancy</span><span data-if="python" style="display:none">gray_constancy</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">GradientConstancy</span><span data-if="c" style="display:none">GradientConstancy</span><span data-if="cpp" style="display:none">GradientConstancy</span><span data-if="com" style="display:none">GradientConstancy</span><span data-if="dotnet" style="display:none">gradientConstancy</span><span data-if="python" style="display:none">gradient_constancy</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">Smoothness</span><span data-if="c" style="display:none">Smoothness</span><span data-if="cpp" style="display:none">Smoothness</span><span data-if="com" style="display:none">Smoothness</span><span data-if="dotnet" style="display:none">smoothness</span><span data-if="python" style="display:none">smoothness</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">InitialGuess</span><span data-if="c" style="display:none">InitialGuess</span><span data-if="cpp" style="display:none">InitialGuess</span><span data-if="com" style="display:none">InitialGuess</span><span data-if="dotnet" style="display:none">initialGuess</span><span data-if="python" style="display:none">initial_guess</span></code>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'mg_solver'</span><span data-if="c" style="display:none">"mg_solver"</span><span data-if="cpp" style="display:none">"mg_solver"</span><span data-if="com" style="display:none">"mg_solver"</span><span data-if="dotnet" style="display:none">"mg_solver"</span><span data-if="python" style="display:none">"mg_solver"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'mg_cycle_type'</span><span data-if="c" style="display:none">"mg_cycle_type"</span><span data-if="cpp" style="display:none">"mg_cycle_type"</span><span data-if="com" style="display:none">"mg_cycle_type"</span><span data-if="dotnet" style="display:none">"mg_cycle_type"</span><span data-if="python" style="display:none">"mg_cycle_type"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'mg_pre_relax'</span><span data-if="c" style="display:none">"mg_pre_relax"</span><span data-if="cpp" style="display:none">"mg_pre_relax"</span><span data-if="com" style="display:none">"mg_pre_relax"</span><span data-if="dotnet" style="display:none">"mg_pre_relax"</span><span data-if="python" style="display:none">"mg_pre_relax"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'mg_post_relax'</span><span data-if="c" style="display:none">"mg_post_relax"</span><span data-if="cpp" style="display:none">"mg_post_relax"</span><span data-if="com" style="display:none">"mg_post_relax"</span><span data-if="dotnet" style="display:none">"mg_post_relax"</span><span data-if="python" style="display:none">"mg_post_relax"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'initial_level'</span><span data-if="c" style="display:none">"initial_level"</span><span data-if="cpp" style="display:none">"initial_level"</span><span data-if="com" style="display:none">"initial_level"</span><span data-if="dotnet" style="display:none">"initial_level"</span><span data-if="python" style="display:none">"initial_level"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'iterations'</span><span data-if="c" style="display:none">"iterations"</span><span data-if="cpp" style="display:none">"iterations"</span><span data-if="com" style="display:none">"iterations"</span><span data-if="dotnet" style="display:none">"iterations"</span><span data-if="python" style="display:none">"iterations"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'pyramid_factor'</span><span data-if="c" style="display:none">"pyramid_factor"</span><span data-if="cpp" style="display:none">"pyramid_factor"</span><span data-if="com" style="display:none">"pyramid_factor"</span><span data-if="dotnet" style="display:none">"pyramid_factor"</span><span data-if="python" style="display:none">"pyramid_factor"</span></i>
</p>
</li>
</ul>
<p>
Each of these parameters of <a href="binocular_disparity_mg.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_mg</span><span data-if="c" style="display:none">binocular_disparity_mg</span><span data-if="cpp" style="display:none">BinocularDisparityMg</span><span data-if="com" style="display:none">BinocularDisparityMg</span><span data-if="dotnet" style="display:none">BinocularDisparityMg</span><span data-if="python" style="display:none">binocular_disparity_mg</span></code></a> has a
corresponding stereo model parameter written in snake case and with
the prefix <i><span data-if="hdevelop" style="display:inline">'binocular_mg_'</span><span data-if="c" style="display:none">"binocular_mg_"</span><span data-if="cpp" style="display:none">"binocular_mg_"</span><span data-if="com" style="display:none">"binocular_mg_"</span><span data-if="dotnet" style="display:none">"binocular_mg_"</span><span data-if="python" style="display:none">"binocular_mg_"</span></i>, and has, some more or others
less, impact on the performance and the result.
Adapting them properly could improve the performance.
</p>
</dd>

<dt><b>Parameters using the method <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a>:</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">SurfaceSmoothing</span><span data-if="c" style="display:none">SurfaceSmoothing</span><span data-if="cpp" style="display:none">SurfaceSmoothing</span><span data-if="com" style="display:none">SurfaceSmoothing</span><span data-if="dotnet" style="display:none">surfaceSmoothing</span><span data-if="python" style="display:none">surface_smoothing</span></code>
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">EdgeSmoothing</span><span data-if="c" style="display:none">EdgeSmoothing</span><span data-if="cpp" style="display:none">EdgeSmoothing</span><span data-if="com" style="display:none">EdgeSmoothing</span><span data-if="dotnet" style="display:none">edgeSmoothing</span><span data-if="python" style="display:none">edge_smoothing</span></code>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'consistency_check'</span><span data-if="c" style="display:none">"consistency_check"</span><span data-if="cpp" style="display:none">"consistency_check"</span><span data-if="com" style="display:none">"consistency_check"</span><span data-if="dotnet" style="display:none">"consistency_check"</span><span data-if="python" style="display:none">"consistency_check"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'similarity_measure'</span><span data-if="c" style="display:none">"similarity_measure"</span><span data-if="cpp" style="display:none">"similarity_measure"</span><span data-if="com" style="display:none">"similarity_measure"</span><span data-if="dotnet" style="display:none">"similarity_measure"</span><span data-if="python" style="display:none">"similarity_measure"</span></i>
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'sub_disparity'</span><span data-if="c" style="display:none">"sub_disparity"</span><span data-if="cpp" style="display:none">"sub_disparity"</span><span data-if="com" style="display:none">"sub_disparity"</span><span data-if="dotnet" style="display:none">"sub_disparity"</span><span data-if="python" style="display:none">"sub_disparity"</span></i>
</p>
</li>
</ul>
<p>
Each of these parameters of <a href="binocular_disparity_ms.html"><code><span data-if="hdevelop" style="display:inline">binocular_disparity_ms</span><span data-if="c" style="display:none">binocular_disparity_ms</span><span data-if="cpp" style="display:none">BinocularDisparityMs</span><span data-if="com" style="display:none">BinocularDisparityMs</span><span data-if="dotnet" style="display:none">BinocularDisparityMs</span><span data-if="python" style="display:none">binocular_disparity_ms</span></code></a> has a
corresponding stereo model parameter written in snake case and with
the prefix <i><span data-if="hdevelop" style="display:inline">'binocular_ms_'</span><span data-if="c" style="display:none">"binocular_ms_"</span><span data-if="cpp" style="display:none">"binocular_ms_"</span><span data-if="com" style="display:none">"binocular_ms_"</span><span data-if="dotnet" style="display:none">"binocular_ms_"</span><span data-if="python" style="display:none">"binocular_ms_"</span></i>, and has, some more or others
less, impact on the performance and the result.
Adapting them properly could improve the performance.
</p>
</dd>
</dl>

</dd>

<dt><b><i>Reconstruct only points with high disparity score</i></b></dt>
<dd>
<p>

Besides adapting the sub-sampling it is also possible to exclude points
of the 3D reconstruction because of their computed disparity score.
In order to do this, the user should first query the score images for
the disparity values by calling <a href="get_stereo_model_object.html"><code><span data-if="hdevelop" style="display:inline">get_stereo_model_object</span><span data-if="c" style="display:none">get_stereo_model_object</span><span data-if="cpp" style="display:none">GetStereoModelObject</span><span data-if="com" style="display:none">GetStereoModelObject</span><span data-if="dotnet" style="display:none">GetStereoModelObject</span><span data-if="python" style="display:none">get_stereo_model_object</span></code></a> using
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code> = <i><span data-if="hdevelop" style="display:inline">'score_image'</span><span data-if="c" style="display:none">"score_image"</span><span data-if="cpp" style="display:none">"score_image"</span><span data-if="com" style="display:none">"score_image"</span><span data-if="dotnet" style="display:none">"score_image"</span><span data-if="python" style="display:none">"score_image"</span></i>.
Dependent on the distribution of these values, the user can decide
whether disparities with a score beneath a certain threshold should be
excluded from the reconstruction. This can be achieved with
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a> using either
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code> = <i><span data-if="hdevelop" style="display:inline">'binocular_score_thresh'</span><span data-if="c" style="display:none">"binocular_score_thresh"</span><span data-if="cpp" style="display:none">"binocular_score_thresh"</span><span data-if="com" style="display:none">"binocular_score_thresh"</span><span data-if="dotnet" style="display:none">"binocular_score_thresh"</span><span data-if="python" style="display:none">"binocular_score_thresh"</span></i>.
The advantage of excluding points of the reconstruction
is a slight speed-up since it is not necessary to process the entire
dataset.
As an alternative to the above-mentioned procedure, it is also possible to
exclude points after executing <code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> by
filtering reconstructed 3D points.
The advantage of this is that at the expense of a slightly increased
runtime, a second call to <code><span data-if="hdevelop" style="display:inline">reconstruct_surface_stereo</span><span data-if="c" style="display:none">reconstruct_surface_stereo</span><span data-if="cpp" style="display:none">ReconstructSurfaceStereo</span><span data-if="com" style="display:none">ReconstructSurfaceStereo</span><span data-if="dotnet" style="display:none">ReconstructSurfaceStereo</span><span data-if="python" style="display:none">reconstruct_surface_stereo</span></code> is not
necessary.
</p>
</dd>

<dt><b><i>Sub-sampling of X,Y,Z data</i></b></dt>
<dd>
<p>

For the method <i><span data-if="hdevelop" style="display:inline">'surface_pairwise'</span><span data-if="c" style="display:none">"surface_pairwise"</span><span data-if="cpp" style="display:none">"surface_pairwise"</span><span data-if="com" style="display:none">"surface_pairwise"</span><span data-if="dotnet" style="display:none">"surface_pairwise"</span><span data-if="python" style="display:none">"surface_pairwise"</span></i>, you can use a larger
sub-sampling step for the X,Y,Z data in the last
step of the reconstruction algorithm by modifying
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code>=<i><span data-if="hdevelop" style="display:inline">'sub_sampling_step'</span><span data-if="c" style="display:none">"sub_sampling_step"</span><span data-if="cpp" style="display:none">"sub_sampling_step"</span><span data-if="com" style="display:none">"sub_sampling_step"</span><span data-if="dotnet" style="display:none">"sub_sampling_step"</span><span data-if="python" style="display:none">"sub_sampling_step"</span></i> with
<a href="set_stereo_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_stereo_model_param</span><span data-if="c" style="display:none">set_stereo_model_param</span><span data-if="cpp" style="display:none">SetStereoModelParam</span><span data-if="com" style="display:none">SetStereoModelParam</span><span data-if="dotnet" style="display:none">SetStereoModelParam</span><span data-if="python" style="display:none">set_stereo_model_param</span></code></a>. The reconstructed data will be much
sparser, thus speeding up the post-processing.
</p>
</dd>

<dt><b><i>Fusion parameters</i></b></dt>
<dd><p>

For the method <i><span data-if="hdevelop" style="display:inline">'surface_fusion'</span><span data-if="c" style="display:none">"surface_fusion"</span><span data-if="cpp" style="display:none">"surface_fusion"</span><span data-if="com" style="display:none">"surface_fusion"</span><span data-if="dotnet" style="display:none">"surface_fusion"</span><span data-if="python" style="display:none">"surface_fusion"</span></i>, enlarging the parameter
<i><span data-if="hdevelop" style="display:inline">'resolution'</span><span data-if="c" style="display:none">"resolution"</span><span data-if="cpp" style="display:none">"resolution"</span><span data-if="com" style="display:none">"resolution"</span><span data-if="dotnet" style="display:none">"resolution"</span><span data-if="python" style="display:none">"resolution"</span></i> will speed up the execution considerably.
</p></dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<p>This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Images" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></b> (input_object)  </span><span>singlechannelimage-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte)</span>
</div>
<p class="pardesc">An image array acquired by the camera setup
associated with the stereo model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="StereoModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">StereoModelID</span><span data-if="c" style="display:none">StereoModelID</span><span data-if="cpp" style="display:none">StereoModelID</span><span data-if="com" style="display:none">StereoModelID</span><span data-if="dotnet" style="display:none">stereoModelID</span><span data-if="python" style="display:none">stereo_model_id</span></code></b> (input_control)  </span><span>stereo_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HStereoModel.html">HStereoModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the stereo model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></b> (output_control)  </span><span>object_model_3d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle to the resulting surface.</p>
</div>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="create_stereo_model.html"><span data-if="hdevelop" style="display:inline">create_stereo_model</span><span data-if="c" style="display:none">create_stereo_model</span><span data-if="cpp" style="display:none">CreateStereoModel</span><span data-if="com" style="display:none">CreateStereoModel</span><span data-if="dotnet" style="display:none">CreateStereoModel</span><span data-if="python" style="display:none">create_stereo_model</span></a></code>, 
<code><a href="get_calib_data.html"><span data-if="hdevelop" style="display:inline">get_calib_data</span><span data-if="c" style="display:none">get_calib_data</span><span data-if="cpp" style="display:none">GetCalibData</span><span data-if="com" style="display:none">GetCalibData</span><span data-if="dotnet" style="display:none">GetCalibData</span><span data-if="python" style="display:none">get_calib_data</span></a></code>, 
<code><a href="set_stereo_model_image_pairs.html"><span data-if="hdevelop" style="display:inline">set_stereo_model_image_pairs</span><span data-if="c" style="display:none">set_stereo_model_image_pairs</span><span data-if="cpp" style="display:none">SetStereoModelImagePairs</span><span data-if="com" style="display:none">SetStereoModelImagePairs</span><span data-if="dotnet" style="display:none">SetStereoModelImagePairs</span><span data-if="python" style="display:none">set_stereo_model_image_pairs</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="get_stereo_model_object_model_3d.html"><span data-if="hdevelop" style="display:inline">get_stereo_model_object_model_3d</span><span data-if="c" style="display:none">get_stereo_model_object_model_3d</span><span data-if="cpp" style="display:none">GetStereoModelObjectModel3d</span><span data-if="com" style="display:none">GetStereoModelObjectModel3d</span><span data-if="dotnet" style="display:none">GetStereoModelObjectModel3d</span><span data-if="python" style="display:none">get_stereo_model_object_model_3d</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="reconstruct_points_stereo.html"><span data-if="hdevelop" style="display:inline">reconstruct_points_stereo</span><span data-if="c" style="display:none">reconstruct_points_stereo</span><span data-if="cpp" style="display:none">ReconstructPointsStereo</span><span data-if="com" style="display:none">ReconstructPointsStereo</span><span data-if="dotnet" style="display:none">ReconstructPointsStereo</span><span data-if="python" style="display:none">reconstruct_points_stereo</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

M. Kazhdan, M. Bolitho, and H. Hoppe:  “Poisson Surface Reconstruction.”
Symposium on Geometry Processing (June 2006).,<br>

C. Zach, T. Pock, and H. Bischof: “A globally optimal algorithm for robust
TV-L1 range image integration.”
Proceedings of IEEE International Conference on Computer Vision (ICCV 2007).
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
